Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
30414 | masppy | 【S】T3 | C++ | 解答错误 | 0 | 275 MS | 10584 KB | 1048 | 2024-07-19 14:03:05 |
#include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=1e6+10; ll n,m,t,k,cnt[maxn],tot=0,root,ans[maxn]; ll rnd[maxn],siz[maxn],a[maxn],value[maxn],fa[maxn]; int son[maxn][10]; priority_queue<ll> q; int find_root(int x){ if(fa[x]==x) return x; return fa[x]=find_root(fa[x]); } int main(){ // freopen("seq.in","r",stdin); // freopen("seq.out","w",stdout); scanf("%lld",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } if(n<=2000){ for(int i=1;i<=n;i++) fa[i]=i; for(int i=1;i<=n;i++){ for(int j=1;j<i;j++){ if((a[i]&a[j])!=0) continue; int fi=find_root(a[i]),fj=find_root(a[j]); if(fi!=fj) fa[fi]=fj; } } for(int i=1;i<=n;i++){ for(int j=1;j<i;j++){ if(a[j]>a[i]&&find_root(a[j])==find_root(a[i])) swap(a[i],a[j]); } } for(int i=1;i<=n;i++) printf("%lld ",a[i]); fclose(stdin); fclose(stdout); return 0; } for(int i=1;i<=n;i++) printf("%d",a[i]); //fclose(stdin); // fclose(stdout); return 0; }