为什么时间复杂度算出了大概是1e9 , 在cf上也能过啊
void solve(){
scanf("%d",&n);
For(i,1,n) scanf("%d",&a[i]),vis[i]=0;
int p=1;
For(i,2,n) if (a[i]>a[p]) p=i;
vis[p]=1;
printf("%d ",a[p]);
int G=a[p];
For(i,2,n){
int np=-1,nv=0;
For(j,1,n) if (!vis[j]){
int val=gcd(G,a[j]);
if (val>nv) nv=val,np=j;
}
vis[np]=1;
printf("%d ",a[np]);
G=gcd(G,a[np]);
}
puts("");
}
int main(){
int T;
scanf("%d",&T);
while (T--) solve();
}
这复杂度应该是O(Tn2)吧
n,T<=1e3