# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
574573 | FatihSolak | Min-max tree (BOI18_minmaxtree) | C++17 | 936 ms | 104852 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>
#define N 200005
#define K 20
using namespace std;
vector<int> adj[N];
map<pair<int,int>,pair<int,int>> edge;
int par[N][K];
int dep[N];
set<int> s[N][2];
set<int> del[N][2];
map<int,bool> needed;
void dfs0(int v,int pr){
par[v][0] = pr;
dep[v] = dep[pr] + 1;
for(auto u:adj[v]){
if(u == pr)continue;
dfs0(u,v);
}
}
void dfs1(int v,int pr){
for(auto u:adj[v]){
if(u == pr)continue;
dfs1(u,v);
for(int i = 0;i<2;i++){
if(s[u][i].size() > s[v][i].size()){
swap(s[u][i],s[v][i]);
}
for(auto c:s[u][i]){
s[v][i].insert(c);
}
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... |