Borderou de evaluare (job #3004583)

Utilizator AlexCroitoriuAlex Croitoriu AlexCroitoriu Data 16 martie 2023 14:01:24
Problema Lowest Common Ancestor Status done
Runda Arhiva educationala Compilator cpp-64 | Vezi sursa
Scor 0

Raport evaluator

Eroare de compilare: main.cpp: In function 'void dfs(int)': main.cpp:2:171: error: 'adj' was not declared in this scope 2 | using namespace std;fstream f("lca.in", ios::in), g("lca.out", ios::out);int tin[100001], tout[100001], t[100001][18], curt;void dfs(int x){tin[x] = ++curt;for (auto y : adj[x])dfs(y);tout[x] = ++curt;}bool is_ancestor(int x, int y){return (tin[x] <= tin[y] && tout[y] <= tout[x]);}int lca(int x, int y){if (is_ancestor(x, y))return x;if (is_ancestor(y, x))return y;for (int i = 17; i >= 0; i--)if (!is_ancestor(t[x][i], y))x = t[x][i];return t[x][0];}int main(){int n, m;f >> n >> m;for (int i = 2; i <= n; i++)f >> t[i][0], adj[t[i][0]].push_back(i);for (int j = 1; j <= 17; j++)for (int i = 1; i <= n; i++)t[i][j] = max(t[t[i][j - 1]][j - 1], 1);dfs(1);cout << is_ancestor(6, 5) << '\n';while (m--){int x, y;f >> x >> y;g << lca(x, y) << '\n';}} | ^~~ main.cpp: In function 'int main()': main.cpp:2:527: error: 'adj' was not declared in this scope 2 | using namespace std;fstream f("lca.in", ios::in), g("lca.out", ios::out);int tin[100001], tout[100001], t[100001][18], curt;void dfs(int x){tin[x] = ++curt;for (auto y : adj[x])dfs(y);tout[x] = ++curt;}bool is_ancestor(int x, int y){return (tin[x] <= tin[y] && tout[y] <= tout[x]);}int lca(int x, int y){if (is_ancestor(x, y))return x;if (is_ancestor(y, x))return y;for (int i = 17; i >= 0; i--)if (!is_ancestor(t[x][i], y))x = t[x][i];return t[x][0];}int main(){int n, m;f >> n >> m;for (int i = 2; i <= n; i++)f >> t[i][0], adj[t[i][0]].push_back(i);for (int j = 1; j <= 17; j++)for (int i = 1; i <= n; i++)t[i][j] = max(t[t[i][j - 1]][j - 1], 1);dfs(1);cout << is_ancestor(6, 5) << '\n';while (m--){int x, y;f >> x >> y;g << lca(x, y) << '\n';}} | ^~~ Non zero exit status: 1

Ceva nu functioneaza?