「Cfz Round 3」Battle
一起来交流编程吧【CSDN app】:
http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pL9ccIHGKNLE0CWviAqQ_q6HzxomLW&authKey=VslKe623ptw8VRepda%2Bh0Ttr8Ruz8v%2FBW5HpVzyTWU7ECwpHIZpULMj6qIHYZBVb&noverify=0&gro
「Cfz Round 3」Battle
题目描述
Alice 和 Bob 正在进行一个游戏,游戏的规则如下:
- Alice 初始时拥有一个整数 n n n,Bob 初始时拥有一个整数 m m m;
- 从 Alice 开始,两人轮流对对方拥有的整数进行操作:设对方此时拥有的整数为 h h h,使 h h h 的值减去 h ? m o d ? p h \bmod p hmodp,其中 ? m o d ? \bmod mod 表示取模运算, p p p 是给定的一个定值;
- 两人中率先使对方拥有的整数变为 0 0 0 的人获得胜利,若在两人分别进行 1 0 1 0 9961 10^{10^{9961}} 10109961 次操作后仍无人获得胜利,则认为游戏平局。
你需要判断谁将会获得胜利,或报告游戏将会平局。
输入格式
本题有多组测试数据。
第一行输入一个整数 T T T,表示测试数据组数。
接下来依次输入每组测试数据。对于每组测试数据,输入三个整数 n , m , p n,m,p n,m,p。
输出格式
对于每组数据,一行一个字符串表示答案:
- 若 Alice 将会获得胜利,则输出
Alice
; - 若 Bob 将会获得胜利,则输出
Bob
; - 若游戏将会平局,则输出
Lasting Battle
。
样例 #1
样例输入 #1
3
1 2 10
9 11 11
55 15 14
样例输出 #1
Alice
Bob
Lasting Battle
提示
「样例解释 #1」
对于第 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;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!