Submission #1181224

#TimeUsernameProblemLanguageResultExecution timeMemory
1181224kunzaZa183Game (IOI14_game)C++20
15 / 100
2 ms584 KiB
#include "game.h"

#include <bits/stdc++.h>
using namespace std;

int n;
vector<set<int>> vi;

void initialize(int n) {
  vi.resize(n);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (i != j) vi[i].insert(j);
    }
  }
}

void relax(int cur) {
  if (vi[cur].empty()) return;
  if (vi[cur].size() == 1) {
    int x = *vi[cur].begin();
    vi[cur].erase(x);
    vi[x].erase(cur);
    relax(x);
  }
}

int hasEdge(int u, int v) {
  if (vi[u].count(v) == 0) return 1;

  vi[u].erase(v), vi[v].erase(u);

  relax(u), relax(v);

  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...