洛谷 P1328 生活大爆炸版石头剪刀布 模拟

很简单
Code:

#include<cstdio>
#include<queue>
using namespace std;
queue<int>A;
queue<int>B;
int n;
int a,b;
void input(){
    scanf("%d",&n);
    scanf("%d%d",&a,&b);
    for(int i=1;i<=a;i++){
        int v;
        scanf("%d",&v);
        A.push(v);
    }
    for(int i=1;i<=b;i++){
        int v;
        scanf("%d",&v);
        B.push(v);
    }
}
int judge_A(int v1,int v2){
    if(v1==v2)return 0;
    if(!v1){
       if(v2==1||v2==4)return 0;
       return 1;
    }
    if(v1==1){
        if(v2==2||v2==4)return 0;
        return 1;
    }
    if(v1==2){
        if(!v2||v2==2||v2==3)return 0;
        return 1;
    }
    if(v1==3){
        if(!v2||v2==1)return 0;
        return 1;
    }
    if(v1==4){
        if(v2==2||v2==3)return 0;
        return 1;
    }
}
int main(){
    input();
    int tot_a=0,tot_b=0;
    for(int i=1;i<=n;i++){
        int v1=A.front();
        int v2=B.front();
        tot_a+=judge_A(v1,v2);
        tot_b+=judge_A(v2,v1);
        A.pop();
        B.pop();
        A.push(v1);
        B.push(v2);
    }
    printf("%d %d\n",tot_a,tot_b);
}
posted @ 2018-08-30 20:41  EM-LGH  阅读(264)  评论(0编辑  收藏  举报