返回顶部

2015ACM/ICPC亚洲区沈阳站-重现赛 D - Pagodas

  • 题意:有\(n\)个数,开始给你两个数\(a\)\(b\),每次找一个没出现过的数\(i\),要求满足\(i=j+k\)\(i=j-k\),当某个人没有数可以选的时候判他输,问谁赢.

  • 题解:对于\(a\)\(b\),我们能有他两得到的最小数一定是\(d=gcd(a,b)\),所以总共能选的数的个数为\(n/d\),判断奇偶即可.

  • 代码:

    int t;
    int n,a,b;
    
    
    int main() {
        ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        cin>>t;
        int p=1;
        while(t--){
            cin>>n>>a>>b;
            int d=__gcd(a,b);
            int cnt=n/d;
            if(cnt&1){
                cout<<"Case #"<<p<<": Yuwgna"<<endl;
            }
            else cout<<"Case #"<<p<<": Iaka"<<endl;
            p++;
        }
    
        return 0;
    }
    
posted @ 2020-10-09 10:34  _Kolibri  阅读(125)  评论(0)    收藏  举报