Submission #854586

# Submission time Handle Problem Language Result Execution time Memory
854586 2023-09-28T06:18:04 Z gun_gan Village (BOI20_village) C++17
0 / 100
4 ms 15708 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
 
const int MX = 5e5 + 5;
 
int N;
vector<int> g[MX];

int r, sz[MX], pp[MX], minCost = 0;

void dfs(int v, int p) {
      for(auto u : g[v]) {
            if(u == p) continue;
            dfs(u, v);
            sz[v] += sz[u];
      }
      sz[v]++;

      int lst = 0;
      for(auto u : g[v]) {
            if(u == p) continue;
            if(sz[u] & 1) {
                  if(lst) {
                        minCost += 4;
                        swap(pp[u], pp[lst]);
                        lst = 0;
                  } else {
                        lst = u;
                  }
            }
      }

      if(lst) {
            minCost += 2;
            swap(pp[lst], pp[v]);
      }
}

int main() {
      cin.tie(0); ios_base::sync_with_stdio(0);

      cin >> N;
      for(int i = 1; i <= N; i++) pp[i] = i;
      for(int i = 0; i < N - 1; i++) {
            int u, v;
            cin >> u >> v;
            g[u].push_back(v);
            g[v].push_back(u);
      }

      r = 0;
      for(int i = 1; i <= N; i++) {
            if(g[i].size() > g[r].size()) r = i;
      }

      dfs(r, 0);

      if(pp[r] == r) {
            assert(N & 1);
            swap(pp[r], pp[g[r][0]]);
      }

      cout << minCost << " " << 0 << '\n';
      for(int i = 1; i <= N; i++) cout << pp[i] << " ";
      cout << '\n';
      for(int i = 1; i <= N; i++) cout << 0 << " ";
      cout << '\n';
}
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 15708 KB Integer parameter [name=vi] equals to 0, violates the range [1, 4]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 15704 KB Integer parameter [name=vi] equals to 0, violates the range [1, 256]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 15708 KB Integer parameter [name=vi] equals to 0, violates the range [1, 4]
2 Halted 0 ms 0 KB -