Submission #1186602

#TimeUsernameProblemLanguageResultExecution timeMemory
1186602versesrev게임 (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; std::bitset<N> mask; std::vector<int> degs; void initialize(int _n) { n = _n; edges.assign(n, {}); degs.assign(n, n); for (int i = 0; i < n; ++i) mask[i] = true; for (int i = 0; i < n; ++i) { edges[i] = ~edges[i] & mask; } } int hasEdge(int u, int v) { edges[u][v] = edges[v][u] = false; --degs[u], --degs[v]; if (edges[v].count() > edges[u].count()) { std::swap(u, v); } int start = std::distance(degs.begin(), std::ranges::max_element(degs)); std::bitset<N> not_visited = mask; std::bitset<N> new_vs, next_new_vs; new_vs = edges[start], not_visited &= ~edges[start]; while ((not_visited[v] or not_visited[u]) and new_vs.any()) { next_new_vs.reset(); for (int i = 0; i < n; ++i) { if (new_vs[i]) { next_new_vs |= edges[i]; } } new_vs = next_new_vs & not_visited; not_visited &= ~new_vs; } if (not_visited[v] or not_visited[u]) { edges[u][v] = edges[v][u] = true; ++degs[u], ++degs[v]; } return edges[u][v]; }

Compilation message (stderr)

game.cpp: In function 'int hasEdge(int, int)':
game.cpp:29:56: error: 'max_element' is not a member of 'std::ranges'; did you mean 'std::max_element'?
   29 |   int start = std::distance(degs.begin(), std::ranges::max_element(degs));
      |                                                        ^~~~~~~~~~~
In file included from /usr/include/c++/11/deque:62,
                 from game.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:5728:5: note: 'std::max_element' declared here
 5728 |     max_element(_ForwardIterator __first, _ForwardIterator __last,
      |     ^~~~~~~~~~~