洛谷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 ̄)づ╭❤~

相关推荐
其实防守也摸鱼13 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
Nuanyt14 小时前
LeetCode Hot 100 链表专题(五)· 2 题(Java)
java·算法·leetcode·链表
w_zero_one17 小时前
递归算法(一)
java·开发语言·算法
风影同志7832418 小时前
20 个比特能装下多少行情?——实测拆解 Kronos 的 K 线分词器
算法
写的都是BUG19 小时前
APK 里的钥匙,一直就放在门口:聊聊加固真正该做什么
前端·算法
地平线开发者19 小时前
CLIP 的零样本分类:一组文本如何变成图像分类器?
算法
京东云开发者20 小时前
从“会生成”到“能生产”:萤火虫 AIGC 平台的 AI Infra 实践
算法·aigc·产品
youshi666820 小时前
PID——算法改进
算法
一只不想敲代码的程序猿1 天前
如何更高效地拆解问题?
算法