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;
}
相关推荐
许长安19 分钟前
C++中指针和引用的区别
c++·经验分享·笔记
Shinom1ya_20 分钟前
算法 day 41
数据结构·算法·leetcode
hetao17338371 小时前
2025-10-30 ZYZOJ Star(斯达)模拟赛 hetao1733837的record
c++·算法
无敌最俊朗@1 小时前
C++ 值类别与移动语义详解(精简版)
java·数据结构·算法
lingran__2 小时前
算法沉淀第十一天(序列异或)
c++·算法
一匹电信狗2 小时前
【C++】红黑树详解(2w字详解)
服务器·c++·算法·leetcode·小程序·stl·visual studio
散峰而望2 小时前
Dev-C++一些问题的处理
c语言·开发语言·数据库·c++·编辑器
进击的大海贼2 小时前
QT/C++ 消息定时管理器
开发语言·c++·qt
寂静山林2 小时前
UVa 11853 Paintball
算法
kyle~2 小时前
原子性与原子操作
运维·服务器·开发语言·c++