# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
353981 | xt0r3 | Race (IOI11_race) | C++14 | 1089 ms | 42204 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#include "race.h"
using namespace std;
constexpr int MAXN = 2*1e5 + 5, MAXK = 1e6 + 5, INF = 1e8;
bool visited[MAXN];
int c[MAXN], k, mini[MAXK];
vector<int> edges[MAXN], w[MAXN];
int cnt(int id){
visited[id] = 1;
c[id] = 1;
for(int v : edges[id]) if(!visited[v]) c[id] += cnt(v);
visited[id] = 0;
return c[id];
}
int init(int id, int n, int p = -1){
for(int v : edges[id]) if(c[v] > n/2 && !visited[v] && p != v) return init(v, n, id);
return id;
}
int centroid(int id){
return init(id, cnt(id));
}
int calc(int id, int len, int lvl = 1, int p = -1){
int ret = INF;
if(len <= k) ret = min(ret, mini[k-len] + lvl);
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... |