Submission #1101947

#TimeUsernameProblemLanguageResultExecution timeMemory
1101947crafticatVillage (BOI20_village)C++17
0 / 100
1 ms336 KiB
#include "bits/stdc++.h" using namespace std; template<typename T> using V = vector<T>; using vi = V<int>; using vvi = V<vi>; using pi = pair<int,int>; using vpi = V<pi>; #define F0R(i, n) for(int i = 0; i < n;i++) #define FOR(i,a, n) for(int i = a; i < n;i++) #define pb push_back V<bool> state; int sum; vi to; vvi g; void dfs(int x, int p) { vi child; for (auto v : g[x]) { if (p == v) continue; dfs(v, x); if (state[v]) continue; child.pb(v); } for (int i = 0; i < child.size() / 2; ++i) { to[child[i]] = child[i + 1]; to[child[i + 1]] = child[i]; sum += 2; } if (child.size() % 2 == 1) { to[child[child.size() - 1]] = x; to[x] = child[child.size() - 1]; sum += 2; state[x] = true; } if (p == -1 && !state[x]) { to[x] = g[x][0]; to[to[g[x][0]]] = x; sum += 2; } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; g.resize(n + 1); state.resize(n + 1); to.resize(n + 1); F0R(i, n - 1) { int a, b; cin >> a >> b; g[a].pb(b); g[b].pb(a); } dfs(1,-1); cout << sum << " 6\n"; FOR(i, 1, n + 1) cout << to[i] << " "; cout << "\n"; FOR(i, 1, n + 1) cout << to[i] << " "; return 0; }

Compilation message (stderr)

Village.cpp: In function 'void dfs(int, int)':
Village.cpp:30:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |     for (int i = 0; i < child.size() / 2; ++i) {
      |                     ~~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...