Submission #288244

#TimeUsernameProblemLanguageResultExecution timeMemory
288244BeanZDreaming (IOI13_dreaming)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "dreaming.h" using namespace std; #define ll long long #define endl '\n' const int N = 1e5 + 5; ll dp[N], res, vis[N], vis2[N], diameter; vector<pair<ll, ll>> node[N]; void dfsFirst(ll u){ vis[u] = 1; for (auto j : node[u]){ if (vis[j.first]) continue; dfsFirst(j.first); dp[u] = max(dp[u], dp[j.first] + j.second); } } void reroot(ll u, ll v){ dp[u] = 0; for (auto j : node[u]){ if (j.first == v) continue; dp[u] = max(dp[u], dp[j.first] + j.second); } dp[v] = 0; for (auto j : node[v]){ dp[v] = max(dp[v], dp[j.first] + j.second); } if (res >= dp[v]){ res = min(res, dp[v]); vector<ll> mem; for (auto j : node[v]){ mem.push_back(dp[j.first] + j.second); } diameter = 0; if (mem.size()){ sort(mem.begin(), mem.end()); for (int i = mem.size() - 1; i >= max((ll)mem.size() - 2, 0ll); i--){ diameter += mem[i]; } } } } void dfs(ll u, ll p){ for (auto j : node[u]){ if (j.first == p) continue; reroot(u, j.first); dfs(j.first, u); reroot(j.first, u); } } int travelTime(int N, int M, int L, vector<int> A, vector<int> B, vector<int> T){ for (int i = 1; i <= M; i++){ node[A[i - 1]].push_back({B[i - 1], T[i - 1]}); node[B[i - 1]].push_back({A[i - 1], T[i - 1]}); } priority_queue<ll> pq; ll ans = 0; for (int i = 1; i <= N; i++){ if (!vis[i]){ diameter = 0; dfsFirst(i); res = dp[i]; dfs(i, i); ans = max(ans, diameter); pq.push(res); } } ll root = pq.top(); pq.pop(); ll mx = -1e18; ll res = root; while (pq.size()){ ans = max(ans, pq.top() + 2 * L + mx); ans = max(ans, pq.top() + L + root); mx = max(mx, pq.top()); pq.pop(); } return ans; } /* int main(){ ios_base::sync_with_stdio(false); cin.tie(0); if (fopen("VietCT.INP", "r")){ freopen("VietCT.INP", "r", stdin); freopen("VietCT.OUT", "w", stdout); } int n, m, l; cin >> n >> m >> l; vector<int> a, b, t; for (int i = 1; i <= m; i++){ int u, v, c; cin >> u >> v >> c; a.push_back(u + 1); b.push_back(v + 1); t.push_back(c); } cout << travelTime(n, m, l, a, b, t); } */ /* 12 8 2 0 8 4 8 2 2 2 7 4 5 11 3 5 1 7 1 3 1 1 9 5 10 6 3 */

Compilation message (stderr)

dreaming.cpp: In function 'int travelTime(int, int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
dreaming.cpp:72:12: warning: unused variable 'res' [-Wunused-variable]
   72 |         ll res = root;
      |            ^~~
/tmp/ccMGEGyH.o: In function `main':
grader.c:(.text.startup+0xa7): undefined reference to `travelTime'
collect2: error: ld returned 1 exit status