# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1228236 | Good | 경주 (Race) (IOI11_race) | C++20 | 컴파일 에러 | 0 ms | 0 KiB |
void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) {
lvl[nd] = lvl[p] + 1;
sz[nd] = 1;
pref[nd] = pref[p] + weight;
sf[nd].ff = nodes.size();
nodes.pb(nd);
for (pii &v: adj[nd]) {
if (v.ff != p) {
calcsz(v.ff, nd, v.ss, adj, sz, lvl, pref, nodes, sf);
sz[nd] += sz[v.ff];
}
}
sf[nd].ss = nodes.size();
}
void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) {
int big_child = -1, mxsz = 0;
for (pii &v: adj[nd]) {
if (v.ff != p) {
dfs(k, v.ff, nd, adj, sz, lvl, pref, nodes, sf, mp, ans);
if (mxsz < sz[v.ff]) big_child = v.ff, mxsz = sz[v.ff];
}
}
if (big_child != -1) {
mp[nd] = mp[big_child];
} else {
mp[nd] = new map<ll, int>();
}
for (pii &v: adj[nd]) {
if (v.ff != p && v.ff != big_child) {
map<ll, int> temp;
for (int i = sf[v.ff].ff; i < sf[v.ff].ss; i++) {
if (mp[nd]->find(k + 2*pref[nd] - pref[i]) != mp[nd]->end()) {
ans = min(ans, lvl[i] + (*mp[nd])[k + 2 * pref[nd] - pref[i]] - 2 * lvl[nd]);
}
if (temp.find(pref[i]) != temp.end()) temp[pref[i]] = min(temp[pref[i]], lvl[i]);
else temp[pref[i]] = lvl[i];
}
for (auto &j: temp) {
if (mp[nd]->find(j.ff) != mp[nd]->end()) (*mp[nd])[j.ff] = min((*mp[nd])[j.ff], j.ss);
else (*mp[nd])[j.ff] = j.ss;
}
}
}
if (mp[nd]->find(k + pref[nd]) != mp[nd]->end())
ans = min(ans, (*mp[nd])[k + pref[nd]] - lvl[nd]);
if (mp[nd]->find(pref[nd]) != mp[nd]->end()) (*mp[nd])[pref[nd]] = min((*mp[nd])[pref[nd]], lvl[nd]);
else (*mp[nd])[pref[nd]] = lvl[nd];
// cout << nd << '\n';
// for (auto &j: (*mp[nd])) {
// cout << j.ff << ' ' << j.ss << '\n';
// }
}
int best_path(int N, int K, int H[][2], int L[])
{
vector<vector<pii>> adj(N);
for (int i = 0; i < N; i++) {
adj[H[i][0]].pb({H[i][1], L[i]});
adj[H[i][1]].pb({H[i][0], L[i]});
}
vector<int> sz(N, 0), lvl(N, 0), nodes;
vector<pii> sf(N);
vector<ll> pref(N);
vector<map<ll, int>*> mp(N);
int ans = mod;
calcsz(0, 0, 0, adj, sz, lvl, pref, nodes, sf);
dfs(K, 0, 0, adj, sz, lvl, pref, nodes, sf, mp, ans);
if (ans == mod) return -1;
return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
race.cpp:1:54: error: 'pii' was not declared in this scope 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~ race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:47: error: 'vector' was not declared in this scope 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~~~~ race.cpp:1:54: error: 'pii' was not declared in this scope 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~ race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:47: error: 'vector' was not declared in this scope 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~~~~ race.cpp:1:54: error: 'pii' was not declared in this scope 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~ race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:47: error: 'vector' was not declared in this scope 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~~~~ race.cpp:1:54: error: 'pii' was not declared in this scope 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~ race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:54: error: 'pii' was not declared in this scope race.cpp:1:47: error: 'vector' was not declared in this scope 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~~~~ race.cpp:1:54: error: 'pii' was not declared in this scope 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~ race.cpp:1:40: error: 'vector' has not been declared 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^~~~~~ race.cpp:1:46: error: expected ',' or '...' before '<' token 1 | void calcsz(int nd, int p, int weight, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf) { | ^ race.cpp: In function 'void calcsz(int, int, int, int)': race.cpp:2:5: error: 'lvl' was not declared in this scope 2 | lvl[nd] = lvl[p] + 1; | ^~~ race.cpp:3:5: error: 'sz' was not declared in this scope 3 | sz[nd] = 1; | ^~ race.cpp:4:5: error: 'pref' was not declared in this scope 4 | pref[nd] = pref[p] + weight; | ^~~~ race.cpp:5:5: error: 'sf' was not declared in this scope 5 | sf[nd].ff = nodes.size(); | ^~ race.cpp:5:17: error: 'nodes' was not declared in this scope 5 | sf[nd].ff = nodes.size(); | ^~~~~ race.cpp:7:10: error: 'pii' was not declared in this scope 7 | for (pii &v: adj[nd]) { | ^~~ race.cpp:7:16: error: found ':' in nested-name-specifier, expected '::' 7 | for (pii &v: adj[nd]) { | ^ | :: race.cpp:7:15: error: 'v' has not been declared 7 | for (pii &v: adj[nd]) { | ^ race.cpp:14:1: error: expected primary-expression before '}' token 14 | } | ^ race.cpp:13:30: error: expected ')' before '}' token 13 | sf[nd].ss = nodes.size(); | ^ | ) 14 | } | ~ race.cpp:7:9: note: to match this '(' 7 | for (pii &v: adj[nd]) { | ^ race.cpp:14:1: error: expected primary-expression before '}' token 14 | } | ^ race.cpp: At global scope: race.cpp:16:46: error: 'pii' was not declared in this scope 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~ race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:39: error: 'vector' was not declared in this scope 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~~~~ race.cpp:16:46: error: 'pii' was not declared in this scope 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~ race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:39: error: 'vector' was not declared in this scope 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~~~~ race.cpp:16:46: error: 'pii' was not declared in this scope 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~ race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:39: error: 'vector' was not declared in this scope 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~~~~ race.cpp:16:46: error: 'pii' was not declared in this scope 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~ race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:46: error: 'pii' was not declared in this scope race.cpp:16:39: error: 'vector' was not declared in this scope 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~~~~ race.cpp:16:46: error: 'pii' was not declared in this scope 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~ race.cpp:16:32: error: 'vector' has not been declared 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^~~~~~ race.cpp:16:38: error: expected ',' or '...' before '<' token 16 | void dfs(int k, int nd, int p, vector<vector<pii>> &adj, vector<int> &sz, vector<int> &lvl, vector<ll> &pref, vector<int> &nodes, vector<pii> &sf, vector<map<ll, int>*> &mp, int &ans) { | ^ race.cpp: In function 'void dfs(int, int, int, int)': race.cpp:18:10: error: 'pii' was not declared in this scope 18 | for (pii &v: adj[nd]) { | ^~~ race.cpp:18:16: error: found ':' in nested-name-specifier, expected '::' 18 | for (pii &v: adj[nd]) { | ^ | :: race.cpp:18:15: error: 'v' has not been declared 18 | for (pii &v: adj[nd]) { | ^ race.cpp:25:5: error: expected primary-expression before 'if' 25 | if (big_child != -1) { | ^~ race.cpp:23:6: error: expected ';' before 'if' 23 | } | ^ | ; 24 | 25 | if (big_child != -1) { | ~~ race.cpp:25:5: error: expected primary-expression before 'if' 25 | if (big_child != -1) { | ^~ race.cpp:23:6: error: expected ')' before 'if' 23 | } | ^ | ) 24 | 25 | if (big_child != -1) { | ~~ race.cpp:18:9: note: to match this '(' 18 | for (pii &v: adj[nd]) { | ^ race.cpp:26:9: error: 'mp' was not declared in this scope; did you mean 'p'? 26 | mp[nd] = mp[big_child]; | ^~ | p race.cpp:28:9: error: 'mp' was not declared in this scope; did you mean 'p'? 28 | mp[nd] = new map<ll, int>(); | ^~ | p race.cpp:28:26: error: 'll' was not declared in this scope 28 | mp[nd] = new map<ll, int>(); | ^~ race.cpp:28:22: error: expected type-specifier 28 | mp[nd] = new map<ll, int>(); | ^~~~~~~~~~~~ race.cpp:31:10: error: 'pii' was not declared in this scope 31 | for (pii &v: adj[nd]) { | ^~~ race.cpp:31:16: error: found ':' in nested-name-specifier, expected '::' 31 | for (pii &v: adj[nd]) { | ^ | :: race.cpp:31:15: error: 'v' has not been declared 31 | for (pii &v: adj[nd]) { | ^ race.cpp:50:5: error: expected primary-expression before 'if' 50 | if (mp[nd]->find(k + pref[nd]) != mp[nd]->end()) | ^~ race.cpp:48:6: error: expected ';' before 'if' 48 | } | ^ | ; 49 | 50 | if (mp[nd]->find(k + pref[nd]) != mp[nd]->end()) | ~~ race.cpp:50:5: error: expected primary-expression before 'if' 50 | if (mp[nd]->find(k + pref[nd]) != mp[nd]->end()) | ^~ race.cpp:48:6: error: expected ')' before 'if' 48 | } | ^ | ) 49 | 50 | if (mp[nd]->find(k + pref[nd]) != mp[nd]->end()) | ~~ race.cpp:31:9: note: to match this '(' 31 | for (pii &v: adj[nd]) { | ^ race.cpp:50:9: error: 'mp' was not declared in this scope; did you mean 'p'? 50 | if (mp[nd]->find(k + pref[nd]) != mp[nd]->end()) | ^~ | p race.cpp:50:26: error: 'pref' was not declared in this scope 50 | if (mp[nd]->find(k + pref[nd]) != mp[nd]->end()) | ^~~~ race.cpp:51:9: error: 'ans' was not declared in this scope 51 | ans = min(ans, (*mp[nd])[k + pref[nd]] - lvl[nd]); | ^~~ race.cpp:51:50: error: 'lvl' was not declared in this scope 51 | ans = min(ans, (*mp[nd])[k + pref[nd]] - lvl[nd]); | ^~~ race.cpp:51:15: error: 'min' was not declared in this scope 51 | ans = min(ans, (*mp[nd])[k + pref[nd]] - lvl[nd]); | ^~~ race.cpp:53:9: error: 'mp' was not declared in this scope; did you mean 'p'? 53 | if (mp[nd]->find(pref[nd]) != mp[nd]->end()) (*mp[nd])[pref[nd]] = min((*mp[nd])[pref[nd]], lvl[nd]); | ^~ | p race.cpp:53:22: error: 'pref' was not declared in this scope 53 | if (mp[nd]->find(pref[nd]) != mp[nd]->end()) (*mp[nd])[pref[nd]] = min((*mp[nd])[pref[nd]], lvl[nd]); | ^~~~ race.cpp:53:97: error: 'lvl' was not declared in this scope 53 | if (mp[nd]->find(pref[nd]) != mp[nd]->end()) (*mp[nd])[pref[nd]] = min((*mp[nd])[pref[nd]], lvl[nd]); | ^~~ race.cpp:53:72: error: 'min' was not declared in this scope 53 | if (mp[nd]->find(pref[nd]) != mp[nd]->end()) (*mp[nd])[pref[nd]] = min((*mp[nd])[pref[nd]], lvl[nd]); | ^~~ race.cpp:54:32: error: 'lvl' was not declared in this scope 54 | else (*mp[nd])[pref[nd]] = lvl[nd]; | ^~~ race.cpp: In function 'int best_path(int, int, int (*)[2], int*)': race.cpp:65:19: error: 'pii' was not declared in this scope 65 | vector<vector<pii>> adj(N); | ^~~ race.cpp:65:12: error: 'vector' was not declared in this scope 65 | vector<vector<pii>> adj(N); | ^~~~~~ race.cpp:65:25: error: 'adj' was not declared in this scope 65 | vector<vector<pii>> adj(N); | ^~~ race.cpp:71:12: error: expected primary-expression before 'int' 71 | vector<int> sz(N, 0), lvl(N, 0), nodes; | ^~~ race.cpp:72:17: error: 'sf' was not declared in this scope 72 | vector<pii> sf(N); | ^~ race.cpp:73:12: error: 'll' was not declared in this scope 73 | vector<ll> pref(N); | ^~ race.cpp:73:16: error: 'pref' was not declared in this scope 73 | vector<ll> pref(N); | ^~~~ race.cpp:74:12: error: 'map' was not declared in this scope 74 | vector<map<ll, int>*> mp(N); | ^~~ race.cpp:74:20: error: expected primary-expression before 'int' 74 | vector<map<ll, int>*> mp(N); | ^~~ race.cpp:75:15: error: 'mod' was not declared in this scope 75 | int ans = mod; | ^~~ race.cpp:76:26: error: 'sz' was not declared in this scope 76 | calcsz(0, 0, 0, adj, sz, lvl, pref, nodes, sf); | ^~ race.cpp:76:30: error: 'lvl' was not declared in this scope 76 | calcsz(0, 0, 0, adj, sz, lvl, pref, nodes, sf); | ^~~ race.cpp:76:41: error: 'nodes' was not declared in this scope 76 | calcsz(0, 0, 0, adj, sz, lvl, pref, nodes, sf); | ^~~~~ race.cpp:77:49: error: 'mp' was not declared in this scope 77 | dfs(K, 0, 0, adj, sz, lvl, pref, nodes, sf, mp, ans); | ^~