Submission #1185403

#TimeUsernameProblemLanguageResultExecution timeMemory
1185403aaa2312Race (IOI11_race)C++20
Compilation error
0 ms0 KiB
#pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #include <bits/stdc++.h> using namespace std; using ll = long long; const ll mod = 1e9 + 7; const ll mod2 = 998244353; ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; } ll pow(ll a, ll b) { ll ans = 1; while (b) { if (b & 1) ans *= a; b >>= 1; a *= a; } return ans; } ll pow(ll a, ll b, ll c) { ll ans = 1; while (b) { if (b & 1) ans = (ans * a) % c; b >>= 1; a = (a * a) % c; } return ans; } void check(bool b) { if (b) cout << "Yes\n"; else cout << "No\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); ll n, k; cin >> n >> k; vector<vector<pair<ll, ll>>> adj(n); for (int i = 0; i < n - 1; ++i) { ll u, v, l; cin >> u >> v >> l; adj[u].push_back({v, l}); adj[v].push_back({u, l}); } vector<ll> dist(n); vector<ll> depth(n); function<void(ll, ll)> dfs = [&](ll u, ll p) { for (auto i: adj[u]) { if (i.first != p) { depth[i.first] = depth[u] + 1; dist[i.first] = dist[u] + i.second; dfs(i.first, u); } } }; dfs(0, -1); ll ans = LLONG_MAX; vector<map<ll, ll>> mp(n); function<void(ll, ll)> dfs2 = [&](ll u, ll p) { mp[u][dist[u]] = depth[u]; for (auto &[v, d]: adj[u]) { if (v != p) { dfs2(v, u); if (mp[v].size() > mp[u].size()) { swap(mp[u], mp[v]); } for (auto &[de, mi]: mp[v]) { if (mp[u].find(dist[u] + k - (de - dist[u])) != mp[u].end()) { ans = min(ans, mi + mp[u][dist[u] + k - (de - dist[u])] - 2*depth[u]); } } for (auto &[de, mi]: mp[v]) { if (mp[u].find(de) == mp[u].end()) { mp[u][de] = mi; } else { mp[u][de] = min(mp[u][de], mi); } } } } }; dfs2(0, -1); if (ans == LLONG_MAX) { cout << -1 << '\n'; } else { cout << ans << '\n'; } return 0; }

Compilation message (stderr)

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