[NOI2020] 命运
发布人:shili8
发布时间:2025-02-27 04:32
阅读次数:0
**命运**
**NOI2020**
**题目描述**
在这个世界上,每个人都有自己的命运。然而,命运并不是固定的,它会随着时间的推移而改变。现在,我们来考虑一个简单的模型:每个人都有一张名为"命运卡片"的牌子。在这张牌子上,有一行数字,代表了这个人的当前命运值。
在某个时刻,会有两种事件发生:
1. **好事**: 有可能发生一些好事,比如考试得高分、获得奖学金等。这些好事会使你的命运卡片上的数字增加。
2. **坏事**: 也可能发生一些坏事,如考试失利、被罚款等。这类事件会使你的命运卡片上的数字减少。
现在,我们来考虑一个问题:如果我们知道了某个人的当前命运值,以及他在某一时刻发生的好事或坏事,我们能否预测出他的未来命运值呢?
**题目要求**
给定一个整数 $n$,代表命运卡片上的数字。然后,对于每种事件(好事或坏事),都有一个整数 $x$,代表该事件的影响力。现在,我们需要计算出在某一时刻发生了多次好事和坏事后,命运卡片上的数字会变成多少。
**输入输出**
* 输入:两个整数 $n$ 和 $m$,分别代表当前命运值和事件次数。
* 输出:一个整数,代表最终的命运值。
**示例**
假设我们有一个名为"命运卡片"的牌子,初始值为100。现在,我们发生了两次好事,每次增加10 的命运值,然后发生了一次坏事,减少5 的命运值。那么,最终的命运值将是:
1. 初始值:1002. 第一次好事:100 +10 =1103. 第二次好事:110 +10 =1204. 最后一次坏事:120 -5 =115最终的命运值是115。
**代码**
cpp#include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; //读入当前命运值和事件次数 for (int i =0; i < m; i++) { // 遍历每次事件 int x; cin >> x; //读入该事件的影响力 if (i %2 ==0) { // 如果是好事,增加命运值 n += x; } else { // 如果是坏事,减少命运值 n -= x; } } cout << n; // 输出最终的命运值 return0; }
**注释**
* 这个程序首先读入当前命运值和事件次数,然后遍历每次事件。对于每次事件,它读入该事件的影响力,并根据是否是好事或坏事来决定增加还是减少命运值。
* 最后,程序输出最终的命运值。
**注意**
这个程序假设输入的数据都是合法的。如果输入的数据不合法,程序可能会出现错误。