Submission #1366394

#TimeUsernameProblemLanguageResultExecution timeMemory
1366394stanirinaGame (IOI14_game)C++20
0 / 100
0 ms344 KiB
#include "game.h"

#include <bits/stdc++.h>

using namespace std;

int n;
vector<int> par; 
int numc;
vector<int> sz;

int getpar(int x){
	while(x!=par[x]){
		par[x]=par[par[x]];
		x=par[x];
	}
	return x;
}

void spoji(int u,int v){
	u=getpar(u);
	v=getpar(v);
	if(u==v)return;
	if(sz[u]<sz[v])swap(u,v); // prikljucujemo v na u
	numc--;
	par[v]=u;
	sz[u]+=sz[v];
}


void initialize(int N) {
	n=N;
	par.assign(n,0);
	for(int i=0;i<n;i++)par[i]=i;
	numc=N;
	sz.assign(n,1);
}

int hasEdge(int u, int v) {
	if(numc<=2)return 0;
	spoji(u,v);
    return 1;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...