对于图中,如果是一行,两个旗子相邻的这种情况,先手肯定必败。
这种情况有什么特点呢:
他们距离的绝对值 减去 1 是 0 (假设这个值是s 下面会用到)。
其实这个题是Nim博弈和 类似多堆取石子。
平衡态是 s的异或和为0。
如果先手面对一个 s异或和为0的局面。
不管先手怎么操作, 后手都会, 都会 将其变成异或和为零的局面。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, m;
while(~scanf("%d %d", &n, &m))
{
int res = 0;
int b, w;
for(int i = 0;i < n;i++)
{
scanf("%d %d", &b, &w);
if(b >w)
{
res = res^(b-w-1);
}
else
{
res= res^(w- b-1);
}
}
if(res)
{
cout <<"I WIN!"<<endl;
}
else
{
cout <<"BAD LUCK!"<<endl;
}
}
return 0;
}