锤子剪刀布
现在Sansa和Arya在一起玩锤子剪刀布,古灵精怪的Arya早就对Sansa的游戏套路知道得一清二楚。玩之前,Arya就已经确定了Sansa在前n轮锤子剪刀布中Sansa分别会出哪些手势。
Arya觉得比赛渐渐变得无聊,但还是决定陪Sansa玩最后一回,以一场很酷的方式赢得这场游戏。她决定n轮只出一种手势,n轮之后就去玩别的。
现在给出Sansa前n轮的手势,假设你是Arya,你会选择哪种手势(锤子,剪刀,布)来保证自己赢的局数比Sansa多?
接下来依次是这t组数据,对于每一组数据:
第1行:n,n≤105;
第2行:n个数字,中间以空格隔开,数字的范围为{1,2,3},1代表锤子,2代表剪刀,3代表布,这n个数即Sansa的n轮游戏将出的手势;
第3行:空行。
如果Arya有多种可以赢的手势,则输出数值最小的那个
Original | Transformed |
2 3 1 2 2 3 1 2 3
2[EOL] 3[EOL] 1[SP]2[SP]2[EOL] [EOL] 3[EOL] 1[SP]2[SP]3[EOL] [EOL] [EOF]
Original | Transformed |
1 0
代码:#include<stdio.h> int a[100000]; int main() { int Max(int x,int y); int Min(int g,int p); int d[100]; int i,q,z,max,v,u,k,t,n,max1,min,min1; scanf("%d",&t); for(i=0;i<t;i++) { int c=0,b=0,j=0; scanf("%d\n",&n); for(z=0;z<n;z++) { scanf("%d",&a[z]); if(a[z]==1) c++; if(a[z]==2) j++; if(a[z]==3) b++; } max1=Max(c,b); max=Max(max1,j); min1=Min(c,b); min=Min(min1,j); if(max==c) v=1; else if(max==j) v=2; else v=3; if(min==c) u=1; else if(min==j) u=2; else u=3; if(min==max) d[i]=0; else { for(q=1;q<=3;q++) if((q-v)!=1&&(v-q)!=2&&(u-q)!=1&&(q-u)!=2) { d[i]=q; break; } } } for(k=0;k<t;k++) printf("%d\n",d[k]); return 0; } int Max(int x,int y) { int h; if(x>y) h=x; else h=y; return h; } int Min(int g,int p) { int f; if(g<p) f=g; else f=p; return f; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。