# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
385202 | 2021-04-03T15:34:24 Z | vishesh312 | Traffic (IOI10_traffic) | C++17 | 1 ms | 364 KB |
#include "bits/stdc++.h" #include "traffic.h" using namespace std; /* #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using ordered_set = tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>; */ #define all(x) begin(x), end(x) #define sz(x) (int)x.size() using ll = long long; const int mod = 1e9+7; vector<int> sub, par; vector<vector<int>> adj; void dfs(int u, int p = -1) { par[u] = p; for (int v : adj[u]) { if (v != p) { dfs(v, u); } } for (int v : adj[u]) { if (v != p) { sub[u] += sub[v]; } } } int LocateCentre(int n, int v[], int U[], int V[]) { sub = vector<int>(v, v+n); par.resize(n); adj.resize(n); for (int i = 0; i < n; ++i) { adj[U[i]].push_back(V[i]); adj[V[i]].push_back(U[i]); } dfs(0); int ans, mx = 2e9+5; for (int i = 0; i < n; ++i) { int cur = sub[0] - sub[i]; for (int v : adj[i]) { if (v != par[i]) { cur = max(cur, sub[v]); } } if (cur < mx) { mx = cur; ans = i; } } return ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 364 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |