Submission #881386

# Submission time Handle Problem Language Result Execution time Memory
881386 2023-12-01T08:15:12 Z 12345678 Traffic (IOI10_traffic) C++17
0 / 100
10 ms 52820 KB
#include "traffic.h"
#include <bits/stdc++.h>

using namespace std;

const int nx=1e6+5;
#define ll long long

vector<ll> d[nx], dp(nx), dpr(nx), c(nx);

void dfs(int u, int p)
{
   for (auto v:d[u]) if (v!=p) dfs(v, u), dp[u]=max(dp[u], dp[v]+c[u]);
}

void dfs2(int u, int p)
{
   ll tmp=0;
   for (auto v:d[u]) if (v!=p) tmp+=dp[v];
   for (auto v:d[u]) if (v!=p) dpr[v]=tmp-dp[v]+dpr[u]+c[u], dfs2(v, u);
}

int LocateCentre(int N, int pp[], int S[], int D[]) {
   for (int i=0; i<N-1; i++) d[S[i]].push_back(D[i]), d[D[i]].push_back(S[i]);
   for (int i=0; i<N; i++) c[i]=pp[i];
   dfs(0, 0);
   dfs2(0, 0);
   pair<ll, int> res={LLONG_MAX, -1};
   for (int i=0; i<N; i++) res=min(res, {max(dp[i], dpr[i]), i});
   //for (int i=0; i<N; i++) cout<<i<<' '<<dp[i]<<' '<<dpr[i]<<'\n';
   return res.second;   
}
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 52820 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 52820 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 52820 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 52820 KB Output isn't correct
2 Halted 0 ms 0 KB -