貌似很简单,可惜我写出来还没有提交就结束比赛了
题目列表 > 石头剪刀布
时间限制: 1000ms 内存限制: 1024MB
描述
石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。
一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期的。请问,小A和小B比了N轮之后,谁赢了?输入
输入的第一行包含一个整数K,表示K组测试数据。
之后的每组测试数据包含三行。第一行包含三个整数:N,NA,NB,分别表示比了N轮,小A出拳的周期长度,小B出拳的周期长度。第二行包含NA个整数,表示小A出拳的规律,第三行包含NB个整数,表示小B出拳的规律。其中,0表示“石头”,2表示“剪刀”,5表示“布”。
对于小数据,0 < K,N,NA,NB <= 10;对于大数据,0 < K,N,NA,NB <= 100;
输出
对于每组测试数据,输出一行。如果小A赢了,输出A;如果小B赢了,输出B;如果两人打平,输出draw。
提示
对于第一组测试数据,猜拳过程为:
A:0 2 5 0 2 5 0 2 5 0 B:0 5 0 2 0 5 0 2 0 5 所以A赢了4轮,B赢了2轮,双方打平4轮,所以A赢了。 对于第二组测试数据,猜拳过程为: A:2 0 5 2 0 B:0 2 5 0 2 所以A赢了2轮,B赢了2轮,双方打平1轮,所以最终打平了。样例输入
210 3 40 2 50 5 0 25 3 32 0 50 2 5样例输出
Adraw
#includeusing namespace std;intmain(){ int K, N, NA, na[110], NB, nb[110], a, b, m, n; cin>>K; while(K--){ cin>>N>>NA>>NB; a=0; b=0; m=1; n=1; for(int i=1; i<=NA; i++) cin>>na[i]; for(int i=1; i<=NB; i++) cin>>nb[i]; for(int i=1; i =NA)m=1; if(n>=NB)n=1; if(na[m] b)cout<<"A"<