提交时间:2026-06-06 14:01:15

运行 ID: 41945

#include<bits/stdc++.h> using namespace std; int _,n,a[100005],ls[100005],bh[100005],ch[100005]; map<int ,int>mp; int bs[1500000]; int main(){ scanf("%d",&_); while(_--){ mp.clear(); scanf("%d",&n); memset(bs,0,sizeof(bs)); for(int i=1;i<=n;i++){ ch[i]=0; scanf("%d",&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