Submission #1162302

#TimeUsernameProblemLanguageResultExecution timeMemory
1162302fzyzzz_zMergers (JOI19_mergers)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 500005, L = 19; int anc[N][L]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; vector<vector<int>> g(n); for (int i = 0; i < n - 1; ++i) { int x, y; cin >> x >> y; x--; y--; g[x].push_back(y); g[y].push_back(x); } vector<int> path, depth(n, 0), tin(n); int timer = 0; function<void(int, int)> dfs0 = [&] (int x, int p) -> void { path.push_back(x); for (int k = 0; k < L; ++k) { if ((1 << k) + 1 > path.size()) { anc[x][k] = -1; } else { anc[x][k] = path.at(path.size() - 1 - (1 << k)); } } tin[x] = timer++; for (auto y: g[x]) { if (y != p) { depth[y] = depth[x] + 1; dfs0(y, x); } } path.pop_back(); }; function<int(int, int)> lca = [&] (int x, int y) { if (depth[x] > depth[y]) swap(x, y); for (int k = L - 1; k >= 0; --k) { if (depth[y] - (1 << k) >= depth[x]) { y = anc[y][k]; } } assert(depth[y] == depth[x]); for (int k = L - 1; k >= 0; --k) { if (anc[x][k] != -1 && anc[y][k] != -1 && anc[x][k] != anc[y][k]) { x = anc[x][k]; y = anc[y][k]; } } assert(anc[x][0] == anc[y][0]); if (anc[x][0] != -1) x = anc[x][0]; return x; }; vector<int> c(n); vector<vector<int>> xs(n); for (int i = 0; i < n; ++i) { cin >> c[i]; xs[--c[i]].push_back(i); } vector<int> p(n); for (int i = 0; i < n; ++i) { sort(xs[i].begin(), xs[i].end(), [&](const int & x, const int & y){ return tin[x] < tin[y]; }); for (int j = 0; j < (int) xs[i].size() - 1; ++j) { int x = xs[i][j], y = xs[i][j + 1]; int z = lca(x, y); if (z != x && z != y) { p[x]++; p[y]++; p[z] -= 2; } else { p[x ^ y ^ z]++; p[z]--; } } } ce return 0; }

Compilation message (stderr)

mergers.cpp: In function 'int main()':
mergers.cpp:95:1: error: 'ce' was not declared in this scope; did you mean 'c'?
   95 | ce
      | ^~
      | c