Submission

Status:

xxxxxxxxxxxxxxxxxxxx

Subtask/Task Score:

0/100

Score: 0

User: Jxricho

Problemset: Bakushin's Genius Game

Language: cpp

Time: 0.190 second

Submitted On: 2025-10-07 11:45:40

#include<bits/stdc++.h>
#define ll long long
using namespace std;
map<ll, bool> memo;
bool canWin(ll n) {
    if(n==0) return false;
    if(memo.find(n)!=memo.end()) return memo[n];
    if(!canWin(n-1)){
        return memo[n]=true;
    }
    for(ll i=2;i*i<=n;i++){
        if(n%i==0){
            if(!canWin(n/i)){
                return memo[n]=true;
            }
			if(i!=n/i&&!canWin(i)) {
                return memo[n]=true;
            }
        }
    }
    return memo[n]=false;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin>>n;
    while(n--){
        ll m;
        cin>>m;
        memo.clear();
        if(canWin(m)){
            cout<<"A\n";
        } 
		else{
            cout<<"B\n";
        }
    }
    
    return 0;
}