IT民工
加油!

威佐夫博奕(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;
}
posted on 2012-08-23 17:05  找回失去的  阅读(292)  评论(0编辑  收藏  举报