Submission #1188840

#TimeUsernameProblemLanguageResultExecution timeMemory
1188840g4yuhgRace (IOI11_race)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> typedef long long ll; #define endl '\n' #define fi first #define se second #define pii pair<ll,ll> #define N 200005 #define LOG 19 #define inf 1e9 using namespace std; ll n, k, del[N], d[N], ans = inf, child[N]; vector<pii> adj[N]; void cnt_child(ll u, ll parent) { child[u] = 1; for (auto v : adj[u]) { if (v.fi == parent || del[v.fi]) continue; cnt_child(v.fi, u); child[u] += child[v.fi]; } } ll centroid(ll u, ll parent, ll n) { for (auto v : adj[u]) { if (v.fi == parent || del[v.fi]) continue; if (child[v.fi] > n / 2) { return centroid(v.fi, u, n); } } return u; } map<ll, ll> mp; void dfs(ll u, ll parent, ll dep) { if (mp.find(k - d[u]) != mp.end()) { ans = min(ans, dep + mp[k - d[u]]); } if (d[u] == k) ans = min(ans, dep); for (auto v : adj[u]) { if (v.fi == parent || del[v.fi]) continue; d[v.fi] = d[u] + v.se; if (d[v.fi] > k) continue; dfs(v.fi, u, dep + 1); } } void dfs2(ll u, ll parent, ll dep) { if (mp.find(d[u]) == mp.end()) { mp[d[u]] = dep; } else { mp[d[u]] = min(mp[d[u]], dep); } for (auto v : adj[u]) { if (v.fi == parent || del[v.fi]) continue; d[v.fi] = d[u] + v.se; if (d[v.fi] > k) continue; dfs2(v.fi, u, dep + 1); } } void gq(ll x) { mp.clear(); d[x] = 0; for (auto v : adj[x]) { if (del[v.fi]) continue; d[v.fi] = d[x] + v.se; dfs(v.fi, x, 1); dfs2(v.fi, x, 1); } } void solve(ll u) { cnt_child(u, u); ll x = centroid(u, u, child[u]); gq(x); del[x] = 1; for (auto v : adj[x]) { if (del[v.fi]) continue; solve(v.fi); } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> k; for (int i = 1; i <= n - 1; i ++) { ll u, v, w; cin >> u >> v >> w; u ++ ; v ++ ; adj[u].push_back({v, w}); adj[v].push_back({u, w}); } solve(1); if (ans == inf) { ans = -1; } cout << ans; return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/cc2mnIK9.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccQsJcwS.o:race.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/cc2mnIK9.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