思路:从大到小排序后,每次找到第一个下标不整出i的输出。
代码:
#include<bits/stdc++.h> using namespace std; #define mem(a,b) memset((a),(b),sizeof(b)) const int N=1e5+5; struct node { int a; int id; bool operator < (const node &t) const { return a>t.a; } }a[N]; int main() { ios::sync_with_stdio(false); cin.tie(0); int t; cin>>t; while(t--) { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].a; a[i].id=i; } sort(a+1,a+n+1); for(int i=2;i<=n;i++) { for(int j=1;j<=n;j++) { if(a[j].id%i!=0) { cout<<a[j].a; break; } } if(i!=n)cout<<" "; else cout<<endl; } } return 0; }