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.in 与 game/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;
}
相关推荐
程序猿编码14 分钟前
不依赖 vLLM/llama.cpp:一套面向学习的 DeepSeek-R1 CUDA 推理实现
c++·学习·语言模型·llama·vllm·大模型推理
kiracrimson32 分钟前
string 容器:从 C 字符串到会自己扩容的类
开发语言·数据结构·c++·stl
程序猿编码36 分钟前
纯 C++ 手写 LLM 推理引擎:分页 KV 缓存、连续批、多卡张量并行全部内置
c++·深度学习·缓存·大模型推理·自动微分·模型推理
一条闲鱼_mytube43 分钟前
分布式 ID 生成方案:雪花算法与号段模式
分布式·算法·wpf
Msir_Modern1 小时前
Noita 元胞沙盒笔记
算法·unity·c#·游戏引擎·元胞自动机
G018_star sky♬1 小时前
nodeJS他是如何用JavaScript封装C++的呢
开发语言·javascript·c++
choumin2 小时前
C++中std::move和std::forward的关系和区别
c++·std move·std forward·关系和区别
木井巳2 小时前
【动态规划: 路径问题】不同路径
java·算法·leetcode·动态规划
程序猿编码2 小时前
YOLOv5/v7/YOLOX 全支持:基于 TensorRT 的工业视觉推理底座详解
c++·yolo·机器学习·推理·模型推理
CQU_JIAKE2 小时前
10.25【A】
数据结构·算法