PAT520 钻石争霸赛 7-6 随机输一次

 

 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1000;
ll n, m, k, q, p;double sum, sum1, sum0;
string s, r;
int a[maxn];
string b[3] = {"ChuiZi", "JianDao", "Bu"};//拳头剪刀布
int main(){
    //ios_base::sync_with_stdio(0);
    //cin.tie(); cout.tie();
    cin>>n;
    for(int i = 1; i <= n; i++){
        cin>>a[i];//控制的随机数
    }
    k = 0;p = 1;//k是进行的次数,p是轮到哪个随机数
    while(cin>>s){
        if(s == "End")break;//结束
        k++;//每进行一局加就1,也就是赢的次数加1
        p %= n;//求余是p超出之后还原
        if(p == 0)p = n;//当p=n时,余是0,所以自己改下
        if(k <= a[p]){//赢a[p]次
            if(s == b[0])
                cout<<b[2]<<endl;
            if(s == b[1])
                cout<<b[0]<<endl;
            if(s == b[2])
                cout<<b[1]<<endl;
        }
        else{//要输了k回0之后重新计算赢的次数
            k = 0;
            p++;//输了的话就要下一个随机数了
            if(s == b[0])
                cout<<b[1]<<endl;
            if(s == b[1])
                cout<<b[2]<<endl;
            if(s == b[2])
                cout<<b[0]<<endl;
        }
    }
    return 0;
}

 

posted @ 2020-11-19 12:46  acwarming  阅读(161)  评论(0编辑  收藏  举报