This documentation is automatically generated by online-judge-tools/verification-helper
This project is maintained by tsutaj
// Euler-tour (Verified: Codeforces Round #225 Div.1: Propagating Tree)
// 頂点 i を根とした部分木の情報は [ etbegin[i], etend[i] ) を参照
constexpr int MAXN = 200010;
vector<int> G[MAXN];
int k=0, euler_tour[2*MAXN], etbegin[MAXN], etend[MAXN];
// usage: make_et(root)
void make_et(int v, int par=-1) {
euler_tour[k] = v;
etbegin[v] = k++;
for(size_t i=0; i<G[v].size(); i++) {
int to = G[v][i];
if(to == par) continue;
make_et(to, v);
euler_tour[k++] = v;
}
etend[v] = k;
}
#line 1 "graph/graph_019_eulertour.cpp"
// Euler-tour (Verified: Codeforces Round #225 Div.1: Propagating Tree)
// 頂点 i を根とした部分木の情報は [ etbegin[i], etend[i] ) を参照
constexpr int MAXN = 200010;
vector<int> G[MAXN];
int k=0, euler_tour[2*MAXN], etbegin[MAXN], etend[MAXN];
// usage: make_et(root)
void make_et(int v, int par=-1) {
euler_tour[k] = v;
etbegin[v] = k++;
for(size_t i=0; i<G[v].size(); i++) {
int to = G[v][i];
if(to == par) continue;
make_et(to, v);
euler_tour[k++] = v;
}
etend[v] = k;
}