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

相关推荐
计信金边罗1 小时前
是否存在路径(FIFOBB算法)
算法·蓝桥杯·图论
MZWeiei1 小时前
KMP 算法中 next 数组的构建函数 get_next
算法·kmp
Fanxt_Ja3 小时前
【JVM】三色标记法原理
java·开发语言·jvm·算法
luofeiju3 小时前
行列式的性质
线性代数·算法·矩阵
緈福的街口3 小时前
【leetcode】347. 前k个高频元素
算法·leetcode·职场和发展
pen-ai4 小时前
【统计方法】基础分类器: logistic, knn, svm, lda
算法·机器学习·支持向量机
鑫鑫向栄4 小时前
[蓝桥杯]春晚魔术【算法赛】
算法·职场和发展·蓝桥杯
roman_日积跬步-终至千里4 小时前
【Go语言基础【3】】变量、常量、值类型与引用类型
开发语言·算法·golang
FrankHuang8884 小时前
使用高斯朴素贝叶斯算法对鸢尾花数据集进行分类
算法·机器学习·ai·分类
菠萝014 小时前
共识算法Raft系列(1)——什么是Raft?
c++·后端·算法·区块链·共识算法