Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
30451 yuanjiabao 【S】T3 C++ 运行超时 45 1000 MS 31544 KB 813 2024-07-19 15:44:44

Tests(5/11):


#include<iostream> #include<algorithm> #include<vector> using namespace std; const int N=1000100; int n,a[N],dsu[N]; vector<int>blk[N]; int p[N]; int find(int x){return dsu[x]==x?x:dsu[x]=find(dsu[x]);} void init(){ cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++)dsu[i]=i; } int main(){ // freopen("seq.in","r",stdin); // freopen("seq.out","w",stdout); init(); for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++)if(!(a[i]&a[j])){ dsu[find(i)]=find(j); } } for(int i=1;i<=n;i++)blk[find(i)].emplace_back(a[i]); for(int i=1;i<=n;i++) for(int i=1;i<=n;i++)sort(blk[i].begin(),blk[i].end()); for(int i=1;i<=n;i++)a[i]=blk[find(i)][p[find(i)]++]; for(int i=1;i<=n;i++)cout<<a[i]<<' '; return 0; }


测评信息: