Submission #422532

#TimeUsernameProblemLanguageResultExecution timeMemory
422532flappybirdGame (IOI14_game)C++14
100 / 100
620 ms38672 KiB
#include "game.h" #include <bits/stdc++.h> #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx,avx2,fma") using namespace std; typedef int ll; #define MAX 1900 ll N; ll p[MAX]; ll line[MAX][MAX]; ll num[MAX]; ll mp[MAX][MAX]; ll find(ll x) { if (x == p[x]) return x; return p[x] = find(p[x]); } void uni(ll x, ll y) { x = find(x); y = find(y); ll i; p[y] = x; num[x] += num[y]; for (i = 0; i < N; i++) if (i != x && i != y) line[i][x] += line[i][y], line[x][i] += line[y][i]; } void initialize(int n) { N = n; ll i, j; for (i = 0; i < N; i++) p[i] = i, num[i] = 1; for (i = 0; i < N; i++) for (j = 0; j < N; j++) mp[i][j] = -1; } int hasEdge(int u, int v) { ll uu, vv; uu = u, vv = v; if (mp[uu][vv] != -1) return mp[uu][vv]; u = find(u); v = find(v); if (line[u][v] == num[u] * num[v] - 1) { uni(u, v); mp[uu][vv] = mp[vv][uu] = 1; return 1; } line[u][v]++; line[v][u]++; mp[uu][vv] = mp[vv][uu] = 0; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...