Borderou de evaluare (job #3003842)

Utilizator Summer05Cocut Alexandru Summer05 Data 15 martie 2023 23:01:11
Problema Concurs Status done
Runda Arhiva de probleme Compilator cpp-64 | Vezi sursa
Scor 100

Raport evaluator

Compilare: main.cpp: In function 'int main()': main.cpp:2:965: warning: 'er' may be used uninitialized in this function [-Wmaybe-uninitialized] 2 | using namespace std;fstream f("concurs.in",ios::in),g("concurs.out",ios::out);int p[35002],tin[35002],tout[35002],t[35002][16],curt;vector<int>adj[35002];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 = 15; i >= 0; i--)if (!is_ancestor(t[x][i], y))x = t[x][i];return t[x][0];}int main(){int n, m, x, y, root = 1;f >> n >> m;for (int i = 1; i <= n; i++)f >> p[i];for (int i = 2; i <= n; i++){f >> x >> y;t[y][0] = x;adj[x].push_back(y);}for (int i = 1; i <= n; i++)if (!t[i][0])root = i;for (int j = 1; j <= 15; j++)for (int i = 1; i <= n; i++){t[i][j] = t[t[i][j-1]][j-1];if(!t[i][j])t[i][j]=root;}dfs(root);int an=0,sw,er;while(m--){f>>x>>y;int curp=p[lca(x,y)];if(an<curp||(an==curp&&x<sw)||(an==curp&&x==sw&&y<er))an=curp,sw=x,er=y;}g<<an<<' '<<sw<<' '<< er;} | ^~ main.cpp:2:959: warning: 'sw' may be used uninitialized in this function [-Wmaybe-uninitialized] 2 | using namespace std;fstream f("concurs.in",ios::in),g("concurs.out",ios::out);int p[35002],tin[35002],tout[35002],t[35002][16],curt;vector<int>adj[35002];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 = 15; i >= 0; i--)if (!is_ancestor(t[x][i], y))x = t[x][i];return t[x][0];}int main(){int n, m, x, y, root = 1;f >> n >> m;for (int i = 1; i <= n; i++)f >> p[i];for (int i = 2; i <= n; i++){f >> x >> y;t[y][0] = x;adj[x].push_back(y);}for (int i = 1; i <= n; i++)if (!t[i][0])root = i;for (int j = 1; j <= 15; j++)for (int i = 1; i <= n; i++){t[i][j] = t[t[i][j-1]][j-1];if(!t[i][j])t[i][j]=root;}dfs(root);int an=0,sw,er;while(m--){f>>x>>y;int curp=p[lca(x,y)];if(an<curp||(an==curp&&x<sw)||(an==curp&&x==sw&&y<er))an=curp,sw=x,er=y;}g<<an<<' '<<sw<<' '<< er;} | ^~~
Test Timp executie Memorie folosita Mesaj Punctaj/test
10ms184kbOK10
20ms184kbOK10
30ms184kbOK10
40ms184kbOK10
50ms184kbOK10
64ms1888kbOK10
7102ms5312kbOK10
815ms2936kbOK10
9122ms3878kbOK10
10179ms3878kbOK10
Punctaj total100

Ceva nu functioneaza?