P1290 欧几里德的游戏

P1290 欧几里德的游戏

原本不想写的,但细节有些多qwq,还是放上吧。

假设a严格大于b

当a<b*2时,只有一种方法往下走;否则就可以有多种方法,并且一定至少有一种可以使自己必胜,因为可以随意决定接下来取的顺序(可在草稿纸上推算)

然后注意细节(我交了3次才过QAQ)

 

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int c,p; long long a,b;
    scanf("%d",&c);
    while(c--)
    {
        scanf("%lld%lld",&a,&b); p=1;
        if(a<b) swap(a,b); //数据没说a一定大于b
        if(a==b) {printf("Stan wins\n"); continue;} //特判a==b
        while(a<b*2) a-=b,swap(a,b),p^=1;
        if(p) printf("Stan wins\n");
        else printf("Ollie wins\n");
    }
    return 0;
}

 

posted @ 2018-08-19 21:52  kafuuchino  阅读(191)  评论(0编辑  收藏  举报