Submission #1350061

#TimeUsernameProblemLanguageResultExecution timeMemory
1350061ElayV13게임 (IOI14_game)C++20
0 / 100
0 ms344 KiB
#include "game.h"
#include "bits/stdc++.h"

struct DSU{
      int p[1501];
      void init(int n){
            for(int i=1;i<=n;i++) p[i]=i;
      }
      int find_set(int v){
            if(p[v]==v) return v;
            return p[v]=find_set(p[v]);
      }
      void unite(int u,int v){
            u=find_set(u);
            v=find_set(v);
            p[u]=v;
      }
};
DSU dsu;
int cnt=0,cur=0,N;
int r;

void initialize(int n)
{
      r=n*(n-1)/2;
      N=n;
      dsu.init(n);
}

int hasEdge(int u,int v)
{
      ++cur;
      if(cnt==N-2){
            if(cur==r) return 1;
            return 0;
      }
      if(dsu.find_set(u)!=dsu.find_set(v)){
            dsu.unite(u,v);
            ++cnt;
            return 1;
      }
      return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...