Submission #23691

# Submission time Handle Problem Language Result Execution time Memory
23691 2017-05-21T11:05:07 Z Hiasat Game (IOI14_game) C++14
0 / 100
0 ms 10828 KB
#include "game.h"
#include <iostream>
#include <cstdio>
#include <set>
#include <vector>
#include <assert.h>

using namespace std;

int dsu[2010];
int rem[2010];
int full;

int find(int u){
	return dsu[u] == u ? u : dsu[u] = find(dsu[u]);
}
void initialize(int n) {
	full = n * (n-1);
	full/=2;
	for (int i = 0; i < n; ++i){
		dsu[i] = i;
		rem[i] = n-1;
	}
}

int r = 0;
int hasEdge(int u, int v) {
	r++;
	int a = find(u);
	int b = find(v);
	rem[a]--;
	rem[b]--;
	if(a == b){
		return 0;
	}

	if(rem[a] == 0 || rem[b] == 0){
		rem[b] += rem[a];
		if(r != full)
			assert(rem[b]);
		dsu[a] = b;
		return 1;
	}
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 10824 KB Output is correct
2 Correct 0 ms 10824 KB Output is correct
3 Correct 0 ms 10824 KB Output is correct
4 Runtime error 0 ms 10828 KB Execution killed because of forbidden syscall gettid (186)
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 10824 KB Output is correct
2 Correct 0 ms 10824 KB Output is correct
3 Correct 0 ms 10824 KB Output is correct
4 Runtime error 0 ms 10828 KB Execution killed because of forbidden syscall gettid (186)
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 10824 KB Output is correct
2 Correct 0 ms 10824 KB Output is correct
3 Correct 0 ms 10824 KB Output is correct
4 Runtime error 0 ms 10828 KB Execution killed because of forbidden syscall gettid (186)
5 Halted 0 ms 0 KB -