Submission #1264517

#TimeUsernameProblemLanguageResultExecution timeMemory
1264517thecybRace (IOI11_race)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define ff first #define ss second void steroids() { std::ios_base::sync_with_stdio(false); std::cin.tie(0); } const int N = 2e5; const int inf = 1e9; std::vector<std::pair<int, int>> adj[N]; int h[N][2]; int l[N]; int d[N]; ll dis_from_root[N]; int n, k; int ans; std::map<ll, int> paths[N]; void dfs(const int &u, const int &par, const ll &cur_dist, const int &cur_height) { paths[u][cur_dist] = cur_height; dis_from_root[u] = cur_dist; d[u] = cur_height; for (const auto &p : adj[u]) { if (p.ff != par){ dfs(p.ff, u, cur_dist + p.ss, cur_height + 1); } } } void smol_to_larg(const int &u, const int &p) { ll target = 0LL + k + 2 * dis_from_root[u]; for (const auto &[v, w] : adj[u]) { if (v != p) { smol_to_larg(v, u); if (paths[v].size() > paths[u].size()) paths[u].swap(paths[v]); for (const auto &[len, dis] : paths[v]) { if (paths[u].find(target - len) != paths[u].end()) { ans = std::min(ans, dis + paths[u][target-len] - 2 * d[u]); } } for (const auto &p : paths[v]) { if (paths[u].find(p.ff) == paths[u].end()) { paths[u].insert(p); } else { paths[u][p.ff] = std::min(paths[u][p.ff], p.ss); } } } } } int best_path(const int &Num, const int &Req, int h[][2], int l[]){ n = Num; k = Req; ans = inf; for (int i = 0; i < n-1; i++) { adj[h[i][0]].push_back({h[i][1], l[i]}); adj[h[i][1]].push_back({h[i][0], l[i]}); } d[0] = 0; dfs(0, -1, 0, 0); smol_to_larg(0, -1); return ans == inf ? -1 : ans; } /*int main() { steroids(); int nn, kk; std::cin >> nn >> kk; for (int i = 0; i < nn-1; i++) { std::cin >> h[i][0] >> h[i][1]; } for (int i = 0; i < nn-1; i++) { std::cin >> l[i]; } std::cout << best_path(nn, kk, h, l); } */

Compilation message (stderr)

/usr/bin/ld: /tmp/ccve3ZOU.o: in function `main':
grader.cpp:(.text.startup+0x28): undefined reference to `best_path(int, int, int (*) [2], int*)'
collect2: error: ld returned 1 exit status