Submission #868041

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
8680412023-10-30 09:58:08vjudge1Werewolf (IOI18_werewolf)C++17
100 / 100
1873 ms226088 KiB
#include "werewolf.h"
using namespace std;
#include <bits/stdc++.h>
class tree_t {
public:
int N, timer;
vector<int> tin, tout, a;
vector<vector<int>> g, par;
tree_t(int N = 0) : N(N), tin(N), tout(N), g(N), timer(0), a(N), par(__lg(N) + 1, vector<int>(N)) {}
void dfs(int u, int p) {
tin[u] = timer++;
par[0][u] = p;
for (int i = 1; i <= __lg(N); i++) par[i][u] = par[i - 1][par[i - 1][u]];
for (int v : g[u]) dfs(v, u);
tout[u] = timer;
}
};
class segtree_t {
public:
segtree_t *left, *right;
vector<int> val;
int l, r, m;
segtree_t(int l, int r) : l(l), r(r), m(l + r >> 1), val() {
if (l == r) return;
left = new segtree_t(l, m);
right = new segtree_t(m + 1, r);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

werewolf.cpp: In constructor 'tree_t::tree_t(int)':
werewolf.cpp:8:29: warning: 'tree_t::g' will be initialized after [-Wreorder]
    8 |         vector<vector<int>> g, par;
      |                             ^
werewolf.cpp:6:16: warning:   'int tree_t::timer' [-Wreorder]
    6 |         int N, timer;
      |                ^~~~~
werewolf.cpp:10:9: warning:   when initialized here [-Wreorder]
   10 |         tree_t(int N = 0) : N(N), tin(N), tout(N), g(N), timer(0), a(N), par(__lg(N) + 1, vector<int>(N)) {}
      |         ^~~~~~
werewolf.cpp: In constructor 'segtree_t::segtree_t(int, int)':
werewolf.cpp:27:51: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   27 |         segtree_t(int l, int r) : l(l), r(r), m(l + r >> 1), val() {
      |                                                 ~~^~~
werewolf.cpp:25:19: warning: 'segtree_t::m' will be initialized after [-Wreorder]
   25 |         int l, r, m;
      |                   ^
werewolf.cpp:24:21: warning:   'std::vector<int> segtree_t::val' [-Wreorder]
   24 |         vector<int> val;
      |                     ^~~
werewolf.cpp:27:9: warning:   when initialized here [-Wreorder]
   27 |         segtree_t(int l, int r) : l(l), r(r), m(l + r >> 1), val() {
      |         ^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...