Submission #1175288

#TimeUsernameProblemLanguageResultExecution timeMemory
1175288vahagngTraffic (IOI10_traffic)C++20
100 / 100
434 ms153100 KiB
#include "traffic.h" #include <bits/stdc++.h> using namespace std; vector<int>adj[1000010], a, sz; long long sum; void dfs(int node, int parent){ sz[node] = a[node]; for(auto i : adj[node]){ if(i == parent) continue; dfs(i, node); sz[node] += sz[i]; } } int cent(int node, int parent){ for(auto i : adj[node]){ if(i == parent) continue; if(2ll*sz[i] > sum) return cent(i, node); } return node; } int LocateCentre(int N, int pp[], int S[], int D[]) { a.resize(N); sz.resize(N); sum = 0; for(int i = 0; i < N; i++){ a[i] = pp[i]; sum += a[i]; } for(int i = 0; i < N-1; i++){ adj[S[i]].push_back(D[i]); adj[D[i]].push_back(S[i]); } dfs(0, -1); return cent(0, -1); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...