This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub kmyk/competitive-programming-library
/**
* @brief get centers of a tree / 木の中心
*/
vector<int> get_centers(vector<vector<int> > const & tree) {
int n = tree.size();
vector<bool> used(n);
vector<int> cur, prv;
REP (i, n) {
if (tree[i].size() <= 1) {
cur.push_back(i);
used[i] = true;
}
}
while (not cur.empty()) {
cur.swap(prv);
cur.clear();
for (int i : prv) {
for (int j : tree[i]) if (not used[j]) {
cur.push_back(j);
used[j] = true;
}
}
}
return prv;
}
#line 1 "old/centers.inc.cpp"
/**
* @brief get centers of a tree / 木の中心
*/
vector<int> get_centers(vector<vector<int> > const & tree) {
int n = tree.size();
vector<bool> used(n);
vector<int> cur, prv;
REP (i, n) {
if (tree[i].size() <= 1) {
cur.push_back(i);
used[i] = true;
}
}
while (not cur.empty()) {
cur.swap(prv);
cur.clear();
for (int i : prv) {
for (int j : tree[i]) if (not used[j]) {
cur.push_back(j);
used[j] = true;
}
}
}
return prv;
}