威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同
时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
/*黄金分割比例判断是不是非奇异局势,面对奇异局势必败
两个人如果都采用正确操作,那么面对非奇异局势,先拿者必胜
反之,则后拿者取胜。
*/
//公式 ak =[k(1+√5)/2],bk= ak + k
/*Accepted 184K 0MS C++ 334B 2012-08-23 16:55:14*/ #include<stdio.h> #include<math.h> const double key = (sqrt(5.0) + 1.0) / 2; int main() { int a, b, k; while(scanf("%d%d", &a, &b) == 2) { if(a > b) { a ^= b, b ^= a, a ^= b; } k = b - a; puts((floor(k * key) == a) ? "0" : "1"); } return 0; }