一起来交流编程吧【CSDN app】:
http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pL9ccIHGKNLE0CWviAqQ_q6HzxomLW&authKey=VslKe623ptw8VRepda%2Bh0Ttr8Ruz8v%2FBW5HpVzyTWU7ECwpHIZpULMj6qIHYZBVb&noverify=0&gro
Alice 和 Bob 正在进行一个游戏,游戏的规则如下:
你需要判断谁将会获得胜利,或报告游戏将会平局。
本题有多组测试数据。
第一行输入一个整数 T T T,表示测试数据组数。
接下来依次输入每组测试数据。对于每组测试数据,输入三个整数 n , m , p n,m,p n,m,p。
对于每组数据,一行一个字符串表示答案:
Alice
;Bob
;Lasting Battle
。3
1 2 10
9 11 11
55 15 14
Alice
Bob
Lasting Battle
对于第 1 1 1 组数据,Alice 在第一次操作中就会将 Bob 拥有的整数从 2 2 2 变为 2 ? ( 2 ? m o d ? 10 ) 2-(2\bmod 10) 2?(2mod10) 即 0 0 0,所以 Alice 将会获得胜利。
对于第 2 2 2 组数据,Alice 在第一次操作中会将 Bob 拥有的整数从 11 11 11 变为 11 ? ( 11 ? m o d ? 11 ) 11-(11\bmod 11) 11?(11mod11) 即 11 11 11,而 Bob 在第一次操作中会将 Alice 拥有的整数从 9 9 9 变为 9 ? ( 9 ? m o d ? 11 ) 9-(9 \bmod 11) 9?(9mod11) 即 0 0 0,所以 Bob 将会获得胜利。
对于第 3 3 3 组数据,可以证明游戏将会平局。
对于所有数据, 1 ≤ T ≤ 5000 1 \leq T \leq 5000 1≤T≤5000, 1 ≤ n , m , p ≤ 2 × 1 0 9 1 \leq n, m, p \leq 2\times 10^9 1≤n,m,p≤2×109。
只有你通过本题的所有测试点,你才能获得本题的分数。
#include<bits/stdc++.h>
using namespace std;
int q,w,e,r,t,y,u,o,p,s,d,f,g,h,j,l,z,x,c,v,n,m,i,k;
int a[10001],aa[5000][5000],b[5000][5000],bb[5000][5000];
char cc[1000];
int main()
{
cin>>w;
for(i=1;i<=w;i++)
{
cin>>aa[i][1]>>aa[i][2]>>aa[i][3];
}
for(i=1;i<=w;i++)
{
j=1;m=aa[i][1];n=aa[i][2];q=aa[i][3];
while(j>0)
{
c=m;d=n;
n=n-n%q;
if(n==0)
{
cout<<"Alice"<<endl;
break;
}
m=m-m%q;
if(m==0)
{
cout<<"Bob"<<endl;
break;
}
if(c==m&&d==n)
{
cout<<"Lasting Battle"<<endl;
break;
}
j++;
}
}
return 0;
}