Submission #1075787

#TimeUsernameProblemLanguageResultExecution timeMemory
1075787TheQuantiXDreaming (IOI13_dreaming)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; ll n, m, q, k, x, y, a, b, c, l; vector< pair<ll, ll> > G[100000]; ll mx[100000], mxu[100000]; bool vis[100000]; void dfs(ll x, ll p) { vis[x] = 1; for (auto i : G[x]) { if (i.first != p) { dfs(i.first, x); mx[x] = max(mx[x], mx[i.first] + i.second); } } } void dfsu(ll x, ll p) { vector< pair<ll, ll> > v; for (auto i : G[x]) { if (i.first != p) { v.push_back({mx[i.first] + i.second, i.first}); } } sort(v.rbegin(), v.rend()); for (auto i : G[x]) { if (i.first != p) { mxu[i.first] = mxu[x] + i.second; if (v.size() != 1) { if (v[0].second != i.first) { mxu[i.first] = max(mxu[i.first], v[0].first + i.second); } else { mxu[i.first] = max(mxu[i.first], v[1].first + i.second); } } dfsu(i.first, x); } } // cout << x << ' ' << mx[x] << ' ' << mxu[x] << '\n'; } pair<int, int> dfsp(ll x, ll p) { pair<int, int> pr = {max(mx[x], mxu[x]), x}; for (auto i : G[x]) { if (i.first != p) { pr = min(pr, dfsp(i.first, x)); } } return pr; } int travelTime(int N, int M, int L, int A[], int B[], int T[]) { n = N; m = M; l = L; for (int i = 0; i < m; i++) { G[A[i]].push_back({B[i], T[i]}); G[B[i]].push_back({A[i], T[i]}); } vector< pair<int, int> > vp; for (int i = 0; i < n; i++) { if (!vis[i]) { dfs(i, -1); dfsu(i, -1); vp.push_back(dfsp(i, -1)); } } // for (auto i : vp) { // cout << i.first << ' ' << i.second << '\n'; // } sort(vp.rbegin(), vp.rend()); int ans = vp[0].first + vp[1].first + L; if (vp.size() > 2) { ans = max(ans, vp[1].first + vp[2].first + L * 2); } return ans; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccdrvdPW.o: in function `main':
grader.c:(.text.startup+0xd1): undefined reference to `travelTime'
collect2: error: ld returned 1 exit status