洛谷P12610 ——[CCC 2025 Junior] Donut Shop

题目背景

Score: 15.

题目描述

The owner of a donut shop spends the day baking and selling donuts.

Given the events that happen over the course of the day, your job is to determine the number of donuts remaining when the shop closes.

输入格式

The first line of input contains a non-negative integer, D, representing the number of donuts available when the shop first opens.

The second line contains a positive integer, E, representing the number of events that happen over the course of the day. The next E pairs of input lines describe these events. The first line in the pair contains either the + (plus) symbol, indicating that donuts have been baked, or the − (minus) symbol, indicating that donuts have been sold. The second line in the pair contains a positive integer, Q, representing the quantity of donuts associated with the event.

For each sale of donuts, the value of Q will be less than or equal to the number of donuts available at that time.

输出格式

Output the non-negative integer, R, which is the number of donuts remaining when the shop closes.

输入输出样例

cpp 复制代码
in:
10
3
+
24
-
6
-
12
out:
16

说明/提示

Explanation of Output for Sample Input

The shop opened with 10 donuts and there were 3 events during the day. The owner first baked 24 donuts. Then the owner sold 6 donuts, followed by another 12. The number of donuts remaining is 10+24−6−12=16.

这道题是不是有些看不懂?

我来翻译一下

题目背景

分数:15 分。

题目描述 一家甜甜圈店的店主整日都在烘焙和售卖甜甜圈。

根据一天中发生的各种事件,你的任务是确定店铺打烊时剩余的甜甜圈数量。

输入格式 输入的第一行包含一个非负整数D,表示店铺刚开门时可供售卖的甜甜圈数量。

第二行包含一个正整数E,表示一天中发生的事件数量。接下来的E组输入行描述了这些事件。每组的第一行包含 "\(+\)"(加号)符号,表示又烘焙了一些甜甜圈;或者包含 "\(-\)"(减号)符号,表示卖出了一些甜甜圈。每组的第二行包含一个正整数Q,表示与该事件相关的甜甜圈数量。

对于每一次甜甜圈的售卖,Q的值将小于或等于当时可供售卖的甜甜圈数量。

输出格式 输出一个非负整数R,即店铺打烊时剩余的甜甜圈数量。

输入输出样例

cpp 复制代码
in:
10
3
+
24
-
6
-
12
out:
16

说明/提示

店铺一开始有 10 个甜甜圈,一天内发生了 3 件事。店主首先烘焙了 24 个甜甜圈。然后店主卖出了 6 个甜甜圈,接着又卖出了 12 个。剩余的甜甜圈数量为 10 + 24 - 6 - 12 = 16 个。

Problem

你有 D 个甜甜圈,

共有 E 个甜甜圈的变化事件,

每个事件有两种可能的情况:

增加或者减少 Q 个甜甜圈。

求剩余的甜甜圈数量。

Solution

对于每个事件,

对甜甜圈的初始数 D 加或减每个对应的 Q 即可。

那么最终 D 的值即为所求结果。

用循环结构简单模拟就可以,每次输入判断是加还是减法,直接对 D 进行运算即可。

只要判断每次输入的符号是 + 还是 - 即可。

如果是 +

那么总甜甜圈数加上输入的个数。

否则就减去输入的个数。

Code

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main(){
	int d,e;cin>>d>>e;
    while(e--){
        char c;cin>>c;
        int q;cin>>q;
        if(c=='+') d+=q;
        else d-=q;
    }
    cout<<d;
	return 0;
}

听说给点赞,关注,收藏的人会发财哦(づ ̄3 ̄)づ╭❤~

相关推荐
CUMT_DJ1 小时前
matlab计算算法的运行时间
开发语言·算法·matlab
KyollBM4 小时前
每日羊题 (质数筛 + 数学 | 构造 + 位运算)
开发语言·c++·算法
Univin6 小时前
C++(10.5)
开发语言·c++·算法
Asmalin6 小时前
【代码随想录day 35】 力扣 01背包问题 一维
算法·leetcode·职场和发展
剪一朵云爱着6 小时前
力扣2779. 数组的最大美丽值
算法·leetcode·排序算法
qq_428639616 小时前
虚幻基础:组件间的联动方式
c++·算法·虚幻
深瞳智检7 小时前
YOLO算法原理详解系列 第002期-YOLOv2 算法原理详解
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪
怎么没有名字注册了啊7 小时前
C++后台进程
java·c++·算法
Rubisco..8 小时前
codeforces 2.0
算法
未知陨落8 小时前
LeetCode:98.颜色分类
算法·leetcode