| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1329245 | chikien2009 | Designated Cities (JOI19_designated_cities) | C++20 | 264 ms | 19584 KiB |
#include <bits/stdc++.h>
using namespace std;
void setup()
{
#ifndef ONLINE_JUDGE
freopen("test.inp", "r", stdin);
freopen("test.out", "w", stdout);
#endif
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int n, q, a, b, c, d;
long long all;
long long f[200000], res[200001];
vector<array<int, 3>> g[200000];
inline void DFS(int node, int par)
{
for (auto & i : g[node])
{
if (i[0] != par)
{
DFS(i[0], node);
f[node] += f[i[0]] + i[2];
}
}
}
inline void DFS1(int node, int par, long long pre)
{
res[1] = max(res[1], f[node] + pre);
for (auto & i : g[node])
{
if (i[0] != par)
{
DFS1(i[0], node, pre + f[node] - f[i[0]] - i[2] + i[1]);
}
}
}
int main()
{
// setup();
cin >> n;
for (int i = 0; i < n - 1; ++i)
{
cin >> a >> b >> c >> d;
g[a - 1].push_back({b - 1, c, d});
g[b - 1].push_back({a - 1, d, c});
all += c + d;
}
DFS(0, 0);
DFS1(0, 0, 0);
cout << all - res[1] << "\n";
return 0;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
