5 solutions
-
2
算法分析
根据一轮的出拳顺序得到次出拳结果,然后依次比较,得到最后的比较结果
#include<bits/stdc++.h> using namespace std; const int N=210; int a[N],b[N]; int main() { int n,na,nb; cin>>n>>na>>nb; for(int i=1;i<=na;i++) cin>>a[i]; for(int i=1;i<=nb;i++) cin>>b[i]; for(int i=na+1;i<=n;i++) //算出后面的结果 a[i]=a[i-na]; for(int i=nb+1;i<=n;i++) b[i]=b[i-nb]; int res=0; //0 石头 2剪刀 5布 for(int i=1;i<=n;i++) { if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0) //a获胜的情况 { res++; }else if(a[i]==b[i]) //相同 { ; }else { res--; } } if(res>0) cout<<"A"; else if(res<0) cout<<"B"; else cout<<"draw"; return 0; }
-
1
#include<bits/stdc++.h> using namespace std; const int A=210; int a[A],b[A];//a数组表示小七赢得次数,b数组表示奶龙赢得次数 int main() { int n,na,nb; cin>>n>>na>>nb; for(int i=1;i<=na;i++) { cin>>a[i]; } for(int i=1;i<=nb;i++) { cin>>b[i]; } for(int i=na+1;i<=n;i++) { a[i]=a[i-na]; } for(int i=nb+1;i<=n;i++) { b[i]=b[i-nb]; } int x=0; for(int i=1;i<=n;i++) { if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0) { x++; } else if(a[i]==b[i]) { ; } else { x--; } } if(x>0) { cout<<"A"; } else if(x==0) { cout<<"draw"; } else { cout<<"B"; } return 0; }
绝对是本人亲自写的 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 给好评我下次继续发题解
-
1
#include<bits/stdc++.h> using namespace std; const int A=210; int a[A],b[A];//a数组表示小七赢得次数,b数组表示奶龙赢得次数 int main() { int n,na,nb; cin>>n>>na>>nb; for(int i=1;i<=na;i++) { cin>>a[i]; } for(int i=1;i<=nb;i++) { cin>>b[i]; } for(int i=na+1;i<=n;i++) { a[i]=a[i-na]; } for(int i=nb+1;i<=n;i++) { b[i]=b[i-nb]; } int x=0; for(int i=1;i<=n;i++) { if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0) { x++; } else if(a[i]==b[i]) { ; } else { x--; } } if(x>0) { cout<<"A"; } else if(x==0) { cout<<"draw"; } else { cout<<"B"; } return 0; }
-
-1
#include<bits/stdc++.h> using namespace std; const int N=210; int a[N],b[N]; int main() { int n,na,nb; cin>>n>>na>>nb; for(int i=1;i<=na;i++) cin>>a[i]; for(int i=1;i<=nb;i++) cin>>b[i]; for(int i=na+1;i<=n;i++) a[i]=a[i-na]; for(int i=nb+1;i<=n;i++) b[i]=b[i-nb]; int res=0; for(int i=1;i<=n;i++) { if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0) { res++; }else if(a[i]==b[i])//相同 { ; }else { res--; } } if(res>0) cout<<"A"; else if(res<0) cout<<"B"; else cout<<"draw"; return 0; }
-
-4
#include<bits/stdc++.h> using namespace std; const int N=210; int a[N],b[N]; int main() { int n,na,nb; cin>>n>>na>>nb; for(int i=1;i<=na;i++) cin>>a[i]; for(int i=1;i<=nb;i++) cin>>b[i]; for(int i=na+1;i<=n;i++) //算出后面的结果 a[i]=a[i-na]; for(int i=nb+1;i<=n;i++) b[i]=b[i-nb]; int res=0; //0 石头 2剪刀 5布 for(int i=1;i<=n;i++) { if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0) //a获胜的情况 { res++; }else if(a[i]==b[i]) //相同 { ; }else { res--; } } if(res>0) cout<<"A"; else if(res<0) cout<<"B"; else cout<<"draw"; return 0; }
- 1
Information
- ID
- 2144
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 3
- Tags
- (None)
- # Submissions
- 37
- Accepted
- 16
- Uploaded By