Submission #1186581

#TimeUsernameProblemLanguageResultExecution timeMemory
1186581versesrevGame (IOI14_game)C++20
Compilation error
0 ms0 KiB
#include <deque>
#include <vector>
#include <bitset>

constexpr int N = 1500;
int n{};
std::vector<std::bitset<N>> edges;

void initialize(int _n) {
  n = _n;
  edges.assign(n, {});
  for (int i = 0; i < n; ++i) {
    edges[i] = ~edges[i];
  }
}

int hasEdge(int u, int v) {
  edges[u][v] = edges[v][u] = false;
  
  std::deque<int> queue;
  std::bitset<N> visited;
  int count = 0;
  queue.push_back(u), visited[u] = true, ++count;
  while (not queue.empty()) {
    int cur = queue.front(); queue.pop_front();
    if (edges[cur] & ~visited) {
      for (int nxt = 0; nxt < n; ++nxt) {
        if (edges[cur][nxt] and not visited[nxt]) {
          queue.push_back(nxt), visited[nxt] = true, ++count;
        }
      }
    }
  }
  
  if (count != n) {
    edges[u][v] = edges[v][u] = true;
  }
  
  return edges[u][v];
}

Compilation message (stderr)

game.cpp: In function 'int hasEdge(int, int)':
game.cpp:26:20: error: could not convert 'std::operator&<1500>((*(const std::bitset<1500>*)(& edges.std::vector<std::bitset<1500> >::operator[](((std::vector<std::bitset<1500> >::size_type)cur)))), visited.std::bitset<1500>::operator~())' from 'std::bitset<1500>' to 'bool'
   26 |     if (edges[cur] & ~visited) {