提交时间:2026-06-06 13:59:01
运行 ID: 41941
#include<bits/stdc++.h> using namespace std; int _,n,a[100005],ls[100005],bh[100005],ch[100005]; map<int ,int>bs,mp; int main(){ scanf("%lld",&_); while(_--){ bs.clear(),mp.clear(); scanf("%lld",&n); for(int i=1;i<=n;i++){ ch[i]=0; scanf("%lld",&a[i]); ls[i]=a[i]; } sort(ls+1,ls+n+1); int top=0; for(int i=1;i<=n;i++){ if(i==1 || ls[i]!=ls[i-1]){ mp[ls[i]]=++top; } } for(int i=1;i<=n;i++){ bh[i]=mp[a[i]]; } for(int j=1;j<=n;j++){ long long now=1; int tp=0; for(int i=j;i<=n;i++){ if(ch[bh[i]]==j)continue; long long cg=now*a[i]/__gcd(now,(long long)a[i]); if(i==j || now!=cg){ bs[cg]=1; } now=cg; ch[bh[i]]=j; if(now>1300000)break; } } for(int i=1;;i++){ if(bs[i]==0){ printf("%d\n",i); break; } } } } //40?-20