Submission #1294882


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define int long long
struct UnionFind{
  vector<int> r,p;
  UnionFind(){}
  UnionFind(int size){init(size);}
  void init(int size){
    r.resize(size,0);
    p.resize(size,0);
    for(int i=0;i<size;i++) r[i]=1,p[i]=i;
  }
  int find(int x){
    return (x==p[x]?x:p[x]=find(p[x]));
  }
  bool same(int x,int y){
    return find(x)==find(y);
  }
  void unite(int x,int y){
    x=find(x);y=find(y);
    if(x==y) return;
    if(r[x]<r[y]) swap(x,y);
    r[x]+=r[y];
    p[y]=x;
  }
};

signed main(){
  for(int k=0;k<10;k++){
    int n=1<<k;
    UnionFind uf(n);
    for(int i=0;i<n;i++){
      for(int j=i+1;j<n;j++){
	if(i&j) continue;
	if(!i||!j) continue;
	uf.unite(i,j);
      }
    }
    int cnt=0;
    for(int i=0;i<n;i++) if(uf.p[i]==i) cnt++;
    cout<<k<<":"<<cnt<<endl;
  }
  return 0;
}

Submission Info

Submission Time
Task D - Everlasting -One-
User beet
Language C++14 (GCC 5.4.1)
Score 0
Code Size 886 Byte
Status WA
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name all
Score / Max Score 0 / 100
Status
WA × 1
Set Name Test Cases
all Merged
Case Name Status Exec Time Memory
Merged WA 1 ms 256 KB