Submission #300050

#TimeUsernameProblemLanguageResultExecution timeMemory
300050kevlee게임 (IOI14_game)C++17
42 / 100
204 ms11384 KiB
#include <bits/stdc++.h>
#include "game.h"
using namespace std;
#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
int comp[1005], sz[1005], link[1005][1005];
int n ;
void initialize(int N) {  
  n = N;
  FOR(i, 1, n) comp[i] = i, sz[i] = 1;
  FOR(i, 1, n) {
    FOR(j, 1, n) {
      if (i != j) link[i][j] = 1;
    }
  }
  return;
}
void debug() {
  return;
  FOR(i, 1, n) {
    FOR(j, i+1, n) {
      cout << link[i][j] << ' ';
    }
    cout << endl;
  }
}
int hasEdge(int u, int v) {
  u++;
  v++;
  if (link[comp[u]][comp[v]] == 1) {
    FOR(i, 1, n) {
      if (comp[i] != comp[v] && comp[i] != comp[u] && comp[i] == i) {
        link[comp[i]][comp[v]] += link[comp[i]][comp[u]];
        link[comp[v]][comp[i]] += link[comp[i]][comp[u]];
      }
    }
    sz[comp[v]] += sz[comp[u]];
    int tmp = comp[u];
    FOR(i, 1, n) {
      if (comp[i] == tmp) comp[i] = comp[v];
    }
    debug();
    return 1;
  }
  link[comp[u]][comp[v]]--;
  link[comp[v]][comp[u]]--;
  debug();
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...