Submission #986786

#TimeUsernameProblemLanguageResultExecution timeMemory
986786vjudge1Game (IOI14_game)C++17
100 / 100
235 ms16416 KiB
#include "game.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define F first
#define S second
#define pb push_back
#define sz(a) (int)a.size()
#define all(a) a.begin(),a.end()
template<class T> bool ckmin(T& a, const T& b) { return b < a ? a = b, 1 : 0; }
template<class T> bool ckmax(T& a, const T& b) { return a < b ? a = b, 1 : 0; }
const int mod = 1e9 + 7;
const int MAXN = 1500;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
struct DSU{
	int p[MAXN], s[MAXN];
	void init(){
		for (int i = 0; i < MAXN; i++){
			p[i] = i;
			s[i] = 1;
		}
	}
	int find(int idx){
		if (p[idx] == idx) return idx;
		return p[idx] = find(p[idx]);
	}
	void merge(int u, int v){
		u = find(u);
		v = find(v);
		if (s[u] < s[v]){
			swap(u, v);
		}
		p[v] = u;
		s[u] += s[v];
	}
} dsu;
int out[MAXN];
int siz ;
void initialize(int n){
	for (int i = n - 1; i >= 0; i--){
		out[i] = n - 1 - i;
	}
}
int hasEdge(int u, int v){
	if (u > v) swap(u, v);
	if (out[u] == 1){
		return 1;
	} else{
		out[u]--;
		return 0;
	}
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...