# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
233540 | 2020-05-20T20:48:19 Z | ant101 | Traffic (IOI10_traffic) | C++14 | 17 ms | 23808 KB |
#include <iostream> #include <algorithm> #include <cstring> #include <iomanip> #include <fstream> #include <cmath> #include <vector> #include <set> #include <unordered_set> #include <unordered_map> #include <map> #include <stack> #include <queue> #include <assert.h> #include <limits> #include <cstdio> using namespace std; //#define RDEBUG 1 #ifdef RDEBUG #define D(x) x #else #define D(x) #endif #define inf 0x7fffffff #define MOD 1000000007 typedef long long ll; ll add(ll a, ll b) { a += b; if(a >= MOD) { a -= MOD; } return a; } ll sub(ll a, ll b) { a -= b; if(a < 0) { a += MOD; } return a; } ll mul(ll a, ll b) { return (a * b)%MOD; } void add_self(ll& a, ll b) { a = add(a, b); } void sub_self(ll& a, ll b) { a = sub(a, b); } void mul_self(ll& a, ll b) { a = mul(a, b); } const ll MAXN = 1000000; static int N,P[1000000],S[1000000],D[1000000]; vector<ll> adj[MAXN]; ll sz[MAXN]; pair<ll, ll> best = {1e13, -1}; ll dfs(ll u, ll p) { sz[u] = P[u]; for (auto v : adj[u]) { if (v != p) { sz[u]+=dfs(v, u); } } return sz[u]; } void dfs2(ll u, ll p) { ll hc = -1; for (auto v : adj[u]) { hc = max(hc, sz[v]); } best = min(best, {hc, u}); for (auto v : adj[u]) { if (v != p) { ll o1 = sz[u], o2 = sz[v]; sz[u]-=sz[v]; sz[v] = o1; dfs2(v, u); sz[u] = o1; sz[v] = o2; } } } int LocateCentre(int N, int P[], int S[], int D[]) { for (ll i = 0; i<N-1; i++) { adj[S[i]].push_back(D[i]); adj[D[i]].push_back(S[i]); } dfs(0, -1); dfs2(0, -1); return best.second; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 17 ms | 23808 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 17 ms | 23808 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 17 ms | 23808 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 17 ms | 23808 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |