P1328 生活大爆炸版石頭剪刀布-洛谷訓練場
阿新 • • 發佈:2018-11-22
解題思路:有個預處理,模擬
程式碼:
#include<iostream> #include<cstdio> using namespace std; const int N=205; char ch[N][N]; int n,na,nb; void pre(){ for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(i==j)ch[i][j]='*'; if(i<j){ if((i==j-1&&i!=3)){ ch[i][j]='-'; } else if(i==0&&j==4||(i==1&&j==4)){ ch[i][j]='-'; } else { ch[i][j]='+'; } } if(j<i){ if((j==i-1&&j!=3)||(j==0&&i==4)||(j==1&&i==4)){ ch[i][j]='+'; } else { ch[i][j]='-'; } } } } // for(int i=0;i<5;i++){ // for(int j=0;j<5;j++){ // if(j!=4) printf("%c",ch[i][j]); // else printf("%c\n",ch[i][j]); // } // } } int main(){ pre(); scanf("%d%d%d",&n,&na,&nb); int a[na+5],b[nb+5]; for(int i=0;i<na;i++){ scanf("%d",&a[i]); } for(int j=0;j<nb;j++){ scanf("%d",&b[j]); } int pa=0,pb=0; int sa=0,sb=0; for(int i=0;i<n;i++){ if(ch[a[pa]][b[pb]]=='+'){ sa++; } if(ch[a[pa]][b[pb]]=='-'){ sb++; } pa++; pb++; pa%=na; pb%=nb; } printf("%d %d\n",sa,sb); return 0; }