P9586 题解
思路
这题的平局条件是什么?平局的条件就是小 C 和小 D 都没有杀和斩了。我们要想让游戏尽可能简单一点(也就是尽可能早点结束),就是让小 C 把能出的牌一下子出完,小 D 也是,这样一回合之后如果还没分出胜负,那就是平局。
首先,我们可以让小 C 把 张斩都出完,如果 ,则小 C 就赢了,游戏结束。否则 就要减去 以应对小 C 的所有斩。然后,如果小 C 的杀比小 D 的闪多,那么小 C 就赢了,游戏结束。否则,小 C 的杀就不出,因为他还要应对小 D 的斩呢!
小 C 的回合结束了,小 D 的回合也同理。如果小 D 的回合结束后还没分出胜负,那就是平局了。
代码
# include <bits/stdc++.h>
using namespace std;
int a1, a2, a3, b1, b2, b3, t;
int main () {
cin >> t;
while (t --) {
cin >> a1 >> a2 >> a3 >> b1 >> b2 >> b3;
if (b1 < a3 || b2 < a1) {
cout << "C\n";
continue ;
}
b1 -= a3;
if (a1 < b3 || a2 < b1) {
cout << "D\n";
continue ;
}
cout << "E\n";
}
return 0;
}

浙公网安备 33010602011771号