题解 CF1270A 【Card Game】

· · 题解

分析一下题目,就是大牌吃小牌。所以我们思考一下,有什么简单的思考方法?毕竟这题是红题

有了!如果你有一张牌够大,对方永远也吃不掉,你就必胜。因此只需考虑最大的一张牌在谁手上。

代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t,flg,n,l,r,sr;
    cin>>t;
    for(int i=1;i<=t;i++)
    {
        flg=1;//flg=1就是第一个人赢,否则第二个人赢。初始是第一个人赢,后续会重新判断。这样只需判断第二个人是否有最大牌。
        cin>>n>>l>>r;
        for(int i=1;i<=l;i++) cin>>sr;//输入第一个人的牌。
        for(int i=1;i<=r;i++)
        {
            cin>>sr;//输入第二个人的牌。
            if(sr==n) flg=0;//判断最大牌在哪里,如果发现第二个人有最大牌,那么就是他赢了,看前面的分析。
        }
        if(flg==0) cout<<"NO\n";//输出。
        else cout<<"YES\n";//输出。
    }
    return 0;//完美结束。
}