# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
937039 | sleepntsheep | Putovanje (COCI20_putovanje) | C++17 | 70 ms | 18000 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<stdio.h>
#include<stdlib.h>
#define N 200005
long long z,run;
int n,ff[N],dd[N],pp[N],jj[N],e[N<<1][4],ne,h[N],tin[N],tout[N],timer=1;
void link(int u,int v,int c1,int c2){
e[++ne][0]=v,e[ne][1]=c1,e[ne][2]=c2,e[ne][3]=h[u],h[u]=ne;
}
void dfs(int u,int p){
dd[u]=dd[pp[u]=p]+1;
jj[u]=(dd[p]-dd[jj[p]]==dd[jj[p]]-dd[jj[jj[p]]])?jj[jj[p]]:p;
tin[u]=timer++;
for(int v,j=h[u];j;j=e[j][3])if((v=e[j][0])-p){
dfs(v,u);
}
tout[u]=timer++;
}
int lca(int u,int v){
if(dd[v]<dd[u])return lca(v,u);
while(dd[v]>dd[u])
v=dd[jj[v]]>=dd[u]?jj[v]:pp[v];
while(u-v)
if(jj[u]!=jj[v])u=jj[u],v=jj[v];
else u=pp[u],v=pp[v];
return u;
}
void dfs2(int u,int p){
for(int v,j=h[u];j;j=e[j][3])if((v=e[j][0])-p){
dfs2(v,u);
long long tk=e[j][2],fr=0;
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... |