# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1200910 | PlayVoltz | 기지국 (IOI20_stations) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>
#define mp make_pair
#define pb push_back
#define fi first
#define se second
int counter;
vector<int> res;
vector<vector<int> > graph;
void dfs(int node, int p, bool a){
if (!a)res[node]=++counter;
for (auto num:graph[node])if (num!=p)dfs(num, node, !a);
if (a)res[node]=++counter;
}
vector<int> label(int n, int k, vector<int> u, vector<int> v) {
graph.clear();
res.clear();
counter=-1;
graph.resize(n);
res.resize(n);
for (int i=0; i<n-1; ++i){
graph[v[i]].pb(u[i]);
graph[u[i]].pb(v[i]);
}
dfs(0, 0, 0);
return res;
}