제출 #986786

#제출 시각아이디문제언어결과실행 시간메모리
986786vjudge1게임 (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...