zoukankan      html  css  js  c++  java
  • [CF546C] Soldier and Cards

    两个人玩牌,首先两个人都拿出自己手牌的最上面的进行拼点,两张拼点牌将都给拼点赢得人,这两张牌放入手牌的顺序是:先放对方的牌再放自己的。若最后有一个人没有手牌了,那么他就输了,求输出拼点的次数和赢得人的编号,如果一直无法结束比赛,则输出-1.

    用队列模拟即可。

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #define ll long long
    #define reset(x) memset(x,0,sizeof x)
    #define reset3f(x) memset(x,0x3f,sizeof x)
    
    queue <int> a,b;
    int n;
    
    signed main() {
        cin>>n;
        cin>>n;
        for(int i=1;i<=n;i++) {
            int t;
            cin>>t;
            a.push(t);
        }
        cin>>n;
        for(int i=1;i<=n;i++) {
            int t;
            cin>>t;
            b.push(t);
        }
        for(int i=1;i<=1e+6;i++) {
            int p=a.front(), q=b.front();
            a.pop(); b.pop();
            int flag=0;
            if(p>q) {
                a.push(q);
                a.push(p);
                flag=1;
            }
            else {
                b.push(p);
                b.push(q);
                flag=2;
            }
            if(a.size()==0 || b.size()==0) {
                cout<<i<<" "<<flag<<endl;
                return 0;
            }
        }
        cout<<-1;
    }
    
  • 相关阅读:
    命令模式
    单例模式
    装饰者模式
    监听者模式
    三角形三心和特点
    u3d中texture2D的Advanced设置解析
    c# 三种常见的委托
    c# float显示时保存一位小数
    Jakarta Java Mail属性参数配置
    SpringDataRedis的Keyspaces设置
  • 原文地址:https://www.cnblogs.com/mollnn/p/12304144.html
Copyright © 2011-2022 走看看