Submission #1137072

#TimeUsernameProblemLanguageResultExecution timeMemory
1137072arijit_biswasTraffic (IOI10_traffic)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; int n; vector<int> p, s, d; vector<vector<int>> g; vector<int> subtreeSum; void dfs(int node, int par) { subtreeSum[node] = p[node]; for (auto &v : g[node]) { if (v != par) { dfs(v, node); subtreeSum[node] += subtreeSum[v]; } } } bool check(int x) { int maxTraffic = 1e9; for (int i = 0; i < n; i++) { int temp = 0; for (auto &v : g[i]) { subtreeSum.assign(n, 0); dfs(v, i); // for (auto &x : subtreeSum) { // cout << x << " "; // } // cout << " -> " << subtreeSum[v] << endl; temp = max(temp, subtreeSum[v]); } maxTraffic = min(maxTraffic, temp); // cout << endl; } return maxTraffic <= x; } void solution() { cin >> n; p.resize(n); s.resize(n - 1); d.resize(n - 1); for (int i = 0; i < n; i++) { cin >> p[i]; } for (int i = 0; i < n - 1; i++) { cin >> s[i]; } for (int i = 0; i < n - 1; i++) { cin >> d[i]; } g.resize(n); for (int i = 0; i < n - 1; i++) { g[s[i]].push_back(d[i]); g[d[i]].push_back(s[i]); } int low = 1, high = 1000, ans = high; while (low <= high) { int mid = low + (high - low) / 2; if (check(mid)) { ans = mid; high = mid - 1; } else { low = mid + 1; } } cout << ans << endl; // cout << check(30) << endl; } int main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); solution(); }

Compilation message (stderr)

/usr/bin/ld: /tmp/cc2mdGns.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccgCubuW.o:traffic.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/cc2mdGns.o: in function `main':
grader.cpp:(.text.startup+0xef): undefined reference to `LocateCentre(int, int*, int*, int*)'
collect2: error: ld returned 1 exit status