CanWin
链接:https://ac.nowcoder.com/acm/contest/90041/E
来源:牛客网
题目描述
在一个无限大的二维网格内,阿龙和小歪正在玩一场游戏。我们使用 (i,j) 表示网格中从上往下数第 i 行和从左往右数第 j 列的单元格。规则如下:
- 两人共同操作一个棋子,开始位置为 (0,0) ;
- 每个回合每人可以将棋子向下或向右移动一格,向下移动一格即抵达 (x+1,y) 、向右移动一格即抵达 (x,y+1) ;
- 对于给定的终点 (x,y) ,在谁的回合中有机会将棋子走到,谁就能胜利;如果谁都不能到达,则视为平局;
- 阿龙先手,双方均采取最优决策(尽可能让自己赢,自己赢不了则尽可能平局);
- 谁能赢呢。
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数
T
T
T
(
1
≤
T
≤
1
0
4
)
(1≤T≤10^4)
(1≤T≤104) 代表数据组数,每组测试数据描述如下:
在一行上输入两个整数
x
,
y
x,y
x,y
(
−
100
≤
x
,
y
≤
100
)
(−100≤x,y≤100)
(−100≤x,y≤100) 代表终点。保证与起点不重合。
输出描述:
如果最后阿龙获胜,在一行上输出 YES ;如果小歪获胜,输出 NO ;否则为平局,直接输出 PING 。
输入示例1
3
1 1
1 0
-1 -1
输出示例1
NO
YES
PING
代码内容
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <sstream>//整型转字符串
// #include <stack>//栈
// #include <deque>//堆/优先队列
// #include <queue>//队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll t;
cin>>t;
while(t--)
{
ll x,y;
cin>>x>>y;
if(x<0||y<0) cout<<"PING"<<endl;
else
{
if(x==y) cout<<"NO"<<endl;
else if(abs(x-y)==1) cout<<"YES"<<endl;
else cout<<"PING"<<endl;
}
}
return 0;
}