Link:

传送门

代码量很少的一套思维题

A:

试一试发现最后状态一定是所有$min,max$间$gcd$的倍数

直接判断数量的奇偶性即可

#include <bits/stdc++.h>

using namespace std;
#define X first
#define Y second
#define pb push_back
typedef double db;
typedef long long ll;
typedef pair<int,int> P;
int n,mx,x,gcd;

int GCD(int x,int y){return !y?x:GCD(y,x%y);}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&x),mx=max(mx,x),gcd=GCD(gcd,x);
    if(!gcd) gcd=1;
    puts((mx/gcd-n)%2?"Alice":"Bob");
    return 0;
}
Problem A

相关文章: