P9586 「MXOI Round 2」游戏

「MXOI Round 2」游戏

题目描述

小 C 和小 D 正在玩一款蒸蒸日上的游戏。

这款游戏共有 3 3 3 种手牌:杀、闪、斩。他们的用途分别如下:

  • 杀:对对方使用,对方需要使用一张 ,否则对方输掉游戏; 回应对方的

  • 闪:回应对方的

  • 斩:对对方使用,对方需要使用一张,否则对方输掉游戏。

玩家在每使用一张牌后,都需要弃掉该使用的牌。

从小 C 开始,每个回合依次属于小 C 和小 D。在玩家的回合内,该玩家可以出任意,对方需要做出对应的回应。当然,玩家也可以不出牌,直接进入对方的回合。

现在,小 C 共有 c 1 c_1 c1 张杀、 c 2 c_2 c2 张闪、 c 3 c_3 c3 张斩,小 D 共有 d 1 d_1 d1 张杀、 d 2 d_2 d2 张闪、 d 3 d_3 d3 张斩,双方都知道对方的手牌。你需要求出,双方在都进行最优策略的情况下,游戏的结果会如何。

输入格式

本题有多组测试数据。

第一行输入一个整数 T T T,表示测试数据组数。

接下来依次输入每组测试数据,对于每组测试数据,输入一行六个整数 c 1 , c 2 , c 3 , d 1 , d 2 , d 3 c_1,c_2,c_3,d_1,d_2,d_3 c1,c2,c3,d1,d2,d3。

输出格式

对于每组测试数据,输出一行:

  • 若双方在都进行最优策略的情况下,小 C 可以获胜,则输出 C

  • 若双方在都进行最优策略的情况下,小 D 可以获胜,则输出 D

  • 若双方在都进行最优策略的情况下,游戏会平局,即谁也无法获胜,则输出 E

样例 #1

样例输入 #1

3
3 1 4 1 5 9
1 1 4 5 1 4
5 2 1 2 6 3

样例输出 #1

C
D
E

提示

【样例解释 #1】

对于第一组数据,小 C 可以先出一张斩,并在小 D 回应一张杀后再出一张斩。此时小 D 的杀用完了,无法做出回应,输掉了游戏。

【样例 #2】

见附加文件中的 game/game2.ingame/game2.ans

【数据范围】

对于 100 % 100\% 100% 的数据, 1 ≤ T ≤ 1 0 5 1 \le T \le 10^5 1≤T≤105, 0 ≤ c 1 , c 2 , c 3 , d 1 , d 2 , d 3 ≤ 1 0 9 0 \le c_1,c_2,c_3,d_1,d_2,d_3 \le 10^9 0≤c1,c2,c3,d1,d2,d3≤109。

测试点编号 特殊性质
1 ∼ 3 1\sim3 1∼3 保证 c 3 = d 3 = 0 c_3=d_3=0 c3=d3=0
4 ∼ 6 4\sim6 4∼6 保证 c 1 = d 2 c_1=d_2 c1=d2 且 c 2 = d 1 c_2=d_1 c2=d1
7 ∼ 10 7\sim10 7∼10
cpp 复制代码
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
int t, c1, c2, c3, d1, d2, d3;
int main()
{
    cin >> t;
    while (t--)
    {
        cin >> c1 >> c2 >> c3 >> d1 >> d2 >> d3;
        if (c1 > d2 || c3 > d1) cout << "C" << endl;
        //先手的杀大于后手的闪或者先手的斩大于后手的杀
        else if ((d1-c3> c2 || d3 > c1)) cout << "D" << endl;
        //注意后手的杀可能会被斩耗掉一些所以有d1-c3
        else cout << "E" << endl;
    }
    return 0;
}
相关推荐
白榆maple12 分钟前
(蓝桥杯C/C++)——基础算法(下)
算法
JSU_曾是此间年少16 分钟前
数据结构——线性表与链表
数据结构·c++·算法
此生只爱蛋1 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
何曾参静谧2 小时前
「C/C++」C/C++ 指针篇 之 指针运算
c语言·开发语言·c++
咕咕吖2 小时前
对称二叉树(力扣101)
算法·leetcode·职场和发展
九圣残炎2 小时前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
lulu_gh_yu2 小时前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
丫头,冲鸭!!!3 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
Re.不晚3 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
ULTRA??3 小时前
C加加中的结构化绑定(解包,折叠展开)
开发语言·c++