Description
小A和小a在玩一个游戏,这个游戏是这样的:现在有n个球,每次操作必须从中拿走k个球,不能操作者输。因为小A的字典序比较大(小),所以小A先手。现在问你小A是否能赢。
Input
第一行一个正整数T表示数据组数。
接下来T行每行两个正整数n和k。
Output
如果小A能赢,则输出YES,否则输出NO。
Sample Input
1
10 4
Sample Output
NO
Hint
对于前30%的数据,n,k<=1000.
对于100%的数据,n,k<=10^18,T<=10
思路
哇,这么水的题我居然爆弹哈哈,第一次用读入优化,结果就跪了,刚好数据水,我又没多测,就gg了,
其实就是把n/k判断一下,若是奇数就输出赢否则就输。
代码
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#define LL long long
using namespace std;
LL read()
{
LL f=1,d=0; char s=getchar() ;
while (s<48 || s>57) {if (s==45) f=-1;s=getchar() ;}
while (s>=48 && s<=57){d=d*10+s-48;s=getchar();}
return f*d;
}
int main()
{
int t;
scanf("%d" ,&t);
for (int i=1;i<=t;i++)
{
LL n,k;
// scanf("%lld %lld" ,&n,&k);
n=read();
k=read();
LL x;
x=n/k;
{
if (x%2==1)
printf("YES\n");
else
printf("NO\n");}
}
}