# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1156820 | AlgorithmWarrior | Factories (JOI14_factories) | C++20 | 4458 ms | 241048 KiB |
#include "factories.h"
#include <bits/stdc++.h>
using namespace std;
int const MAX=5e5+5;
struct edge{
int nod,len;
};
vector<edge>tree[MAX];
bool dead[MAX];
int centroid_dad[MAX];
int subsize[MAX];
int get_subsize(int nod,int tata){
subsize[nod]=1;
for(auto [fiu,w] : tree[nod])
if(!dead[fiu] && fiu!=tata)
subsize[nod]+=get_subsize(fiu,nod);
return subsize[nod];
}
int find_centroid(int nod,int tata,int total_sz){
for(auto [fiu,w] : tree[nod])
if(!dead[fiu] && fiu!=tata && subsize[fiu]>total_sz/2)
return find_centroid(fiu,nod,total_sz);
return nod;
}
int whole_centroid;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |