E
Anonymous
c_cpp
02/28/2026 12:22 PM
2.3 KB
91
Indexable
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
#define int long long
const int N = 1e6 + 10;
const int inf = 1e15;
const int mod = 998244353;
vector<int> spf(N);
inline void solve(){
int n;cin >> n;
vector<int> v(n);
for(auto &x : v) cin >> x;
bool ok = 1;
for(int i = 0;i < n - 1;i += 1){
ok &= (v[i] <= v[i + 1]);
}
if(ok){
cout << "Bob";
return;
}
auto check = [&](int cur){
int cnt = 0, last = 1;
while(cur != 1){
int s = spf[cur];
while(cur % s == 0){
cur /= s;
}
last = s;
cnt += 1;
}
return make_pair((cnt <= 1), last);
};
for(auto &x : v){
if(spf[x] != x && !check(x).first){
cout << "Alice";
return;
}
}
int mx = 0;
for(auto &x : v){
if(mx > check(x).second){
cout << "Alice";
return;
}
mx = max(mx, check(x).second);
}
cout << "Bob";
}
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
for(int i = 0;i < N;i += 1){
spf[i] = i;
}
spf[1] = 10;
for(int i = 2;i < N;i += 2){
spf[i] = 2;
}
for(int i = 3;i * i < N;i += 1){
if(spf[i] == i){
for(int j = i * i;j < N;j += i){
if(spf[j] == j){
spf[j] = i;
}
}
}
}
int t = 1;
cin >> t;
while(t--){
solve();
cout << '\n';
}
return 0;
}
Editor is loading...
Leave a Comment