P9586 题解

题目传送门

思路

这题的平局条件是什么?平局的条件就是小 C 和小 D 都没有杀和斩了。我们要想让游戏尽可能简单一点(也就是尽可能早点结束),就是让小 C 把能出的牌一下子出完,小 D 也是,这样一回合之后如果还没分出胜负,那就是平局。

首先,我们可以让小 C 把 c3c3 张斩都出完,如果 d1<c3d1<c3,则小 C 就赢了,游戏结束。否则 d1d1 就要减去 c3c3 以应对小 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;
}
posted @ 2023-08-27 19:39  Vitamin_B  阅读(9)  评论(0)    收藏  举报  来源