Submission #879798

# Submission time Handle Problem Language Result Execution time Memory
879798 2023-11-28T07:06:45 Z Muaath_5 Game (IOI14_game) C++17
0 / 100
0 ms 428 KB
void initialize(int n);
int hasEdge(int u, int v);

const int N = 1001;

int n, mp[N], par[N];


int root(int x) {
	return x == par[x] ? x : par[x] = root(par[x]);
}
void merge(int u, int v) {
	u = root(u), v = root(v);
  	if (u == v) return;
  	par[v] = u;
}

void initialize(int cnt)
{
	n = cnt;
	for (int i = 1; i <= cnt; i++)
		mp[i] = 0;
	for (int i = 1; i <= cnt; i++)
		par[i] = i;
}

int hasEdge(int u, int v)
{
  	if (u > v) {
		int tmp = u;
		u = v;
		v = tmp;
	}
	if (root(u) == root(v))
		return 1;
	mp[u]++, mp[v]++;
  	if (mp[u] == n-1 || mp[v] == n-1) {
      		merge(u, v);
		mp[u] = 0;
		mp[v] = 0;
		return 1;
	}
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 0 ms 344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 428 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 424 KB Output isn't correct
3 Halted 0 ms 0 KB -