Submission #1267826

#TimeUsernameProblemLanguageResultExecution timeMemory
1267826cmiuc게임 (IOI14_game)C++20
100 / 100
272 ms15876 KiB
#include <iostream> #include <vector> #include "game.h" using namespace std; int M, s[1505][1505], par[1505]; void initialize(int N){ M = N; for (int i=1;i<=M;i++) for (int j=1;j<=M;j++) s[i][j] = (i != j); } int root(int v){ if (par[v] == 0) return v; par[v] = root(par[v]); return par[v]; } int hasEdge(int u, int v){ // for (int i=1;i<=M;i++){ // for (int j=1;j<=M;j++) // if (i != j and root(i) == i and root(j) == j) // cout<<i<<" "<<j<<" "<<s[i][j]<<'\n'; // } u = root(u + 1); v = root(v + 1); // cout<<u<<" "<<v<<" aa "; if (s[u][v] != 1){ s[u][v] = s[v][u] = s[u][v] - 1; return 0; } for (int i =1;i<=M;i++) if (i != u and i != v and root(i) == i) s[u][i] = s[i][u] = s[i][v] + s[i][u]; par[v] = u; return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...