尼姆博弈。
棋子两两相邻的状态是一个必败态,因为先手无论怎么动,后手都可以继续贴住对方的棋子,直到先手无路可走,那么就可以以每行黑白子之间的距离作为sg值,然后就转化成了尼姆博弈。
#include <iostream>
using namespace std;
int n,m,a,b;
int flag;
int main()
{
while(cin >> n >> m)
{
flag = false;
int ans = 0;
for(int i = 0;i < n;i++)
{
cin >> a >> b;
if(a > b)
ans ^= a - b - 1;
else
ans ^= b - a - 1;
//if(a - b != 1 && b - a != 1)
//flag = !flag;
}
if(ans)
cout << "I WIN!" << endl;
else
cout << "BAD LUCK!" << endl;
}
return 0;
}