题解:P15016 [UOI 2020 II Stage] 考试
P15016 [UOI 2020 II Stage] 考试 题解
题目描述
哥萨克胡子最近参加了一场大型考试(题目比乌克兰统考还多!)。他已经知道,除了最后一道题,他所有题目总共能得
根据规则,哥萨克的分数按如下方式确定:
- 如果
a 和b 相等(即哥萨克胡子答对了),那么在他之前题目所得的分数上加上c 分。 - 如果
a \neq 0 且a \neq b (即哥萨克没有留空但答错了),则从他之前题目所得的分数中减去\frac{c}{4} (保证c 能被4 整除)。 - 如果
a = 0 (即哥萨克胡子将答题卡留空),那么他的考试分数将恰好等于他之前题目所得的分数。
请注意,考试分数不能低于
你的任务很简单:告诉哥萨克他将在考试中获得多少分。
思路
规则一:判断是否哥萨克胡子答对了,即
规则二:判断是否哥萨克没有留空但答错了,即是否
规则三:判断是否哥萨克胡子将答题卡留空,即是否
注意:考试分数不能低于
AC 代码
#include <bits/stdc++.h>
using namespace std;
int main () {
ios::sync_with_stdio (0);
cin.tie (0);
cout.tie (0);
int n, a, b, c;
cin >> n >> a >> b >> c;
if (a == b) { //(即哥萨克胡子答对了)
n += c;
cout << max (n, 0);
}
if (a != 0 && a != b) { //(即哥萨克没有留空但答错了)
n -= c / 4;
cout << max (n, 0);
}
if (a == 0) {//(即哥萨克胡子将答题卡留空)
cout << max (n, 0);
}
return 0;
}
感谢观看!