Submission #1981811
Source Code Expand
#include<cstdio>
#include<vector>
#define pb push_back
const int MaxN=100010;
int N;
struct edge{int to;edge*next;}E[MaxN*2],*ne=E,*first[MaxN];
void link(int u,int v){*ne=(edge){v,first[u]};first[u]=ne++;}
int fa[MaxN],dep[MaxN],siz[MaxN],son[MaxN],top[MaxN];
void init(int i){
siz[i]=1;
for(edge*e=first[i];e;e=e->next)if(e->to!=fa[i]){
fa[e->to]=i;
dep[e->to]=dep[i]+1;
init(e->to);
if(siz[e->to]>siz[son[i]])son[i]=e->to;
siz[i]+=siz[e->to];
}
}
void hld(int i){
for(edge*e=first[i];e;e=e->next)if(e->to!=fa[i])
top[e->to]=e->to==son[i]?top[i]:e->to,hld(e->to);
}
int lca(int i,int j){
while(top[i]!=top[j])dep[top[i]]>dep[top[j]]?i=fa[top[i]]:j=fa[top[j]];
return dep[i]<dep[j]?i:j;
}
std::vector<int>us[MaxN],vs[MaxN],lcas[MaxN];
int pre[MaxN];
int find(int i){return pre[i]==i?i:pre[i]=find(pre[i]);}
bool solve(){
for(int i=1;i<=N;i++)pre[i]=i;
for(int d=1;d<N;d++)for(int i=0;i<us[d].size();i++){
int u=us[d][i],v=vs[d][i],a=lcas[d][i],ec=0;
for(;dep[u=find(u)]>dep[a];pre[u]=find(fa[u]))if(ec++)return 0;
for(;dep[v=find(v)]>dep[a];pre[v]=find(fa[v]))if(ec++)return 0;
if(!ec)return 0;
}
return 1;
}
int main(){
scanf("%d",&N);
for(int i=1,a,b;i<N;i++)scanf("%d%d",&a,&b),link(a,b),link(b,a);
init(top[1]=1);
hld(1);
for(int i=1,a,b;i<N;i++){
scanf("%d%d",&a,&b);
int l=lca(a,b),d=dep[a]+dep[b]-dep[l]*2;
us[d].pb(a);
vs[d].pb(b);
lcas[d].pb(l);
}
puts(solve()?"YES":"NO");
}
Submission Info
Submission Time |
|
Task |
E - Blue and Red Tree |
User |
mn3twe |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1484 Byte |
Status |
WA |
Exec Time |
76 ms |
Memory |
21248 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:41:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&N);
^
./Main.cpp:42:65: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
for(int i=1,a,b;i<N;i++)scanf("%d%d",&a,&b),link(a,b),link(b,a);
^
./Main.cpp:46:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&a,&b);
^
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 1400 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample1.txt, sample2.txt, sample3.txt |
All |
sample1.txt, sample2.txt, sample3.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in4.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt, sample3.txt |
Case Name |
Status |
Exec Time |
Memory |
in1.txt |
AC |
4 ms |
10112 KB |
in10.txt |
AC |
58 ms |
14976 KB |
in11.txt |
WA |
52 ms |
15096 KB |
in12.txt |
WA |
53 ms |
15096 KB |
in13.txt |
WA |
53 ms |
14968 KB |
in14.txt |
WA |
53 ms |
15096 KB |
in15.txt |
WA |
53 ms |
14968 KB |
in16.txt |
WA |
52 ms |
14968 KB |
in17.txt |
WA |
53 ms |
14968 KB |
in18.txt |
WA |
53 ms |
15096 KB |
in19.txt |
WA |
53 ms |
14968 KB |
in2.txt |
AC |
4 ms |
10112 KB |
in20.txt |
WA |
53 ms |
14968 KB |
in21.txt |
AC |
54 ms |
15096 KB |
in22.txt |
AC |
54 ms |
15096 KB |
in23.txt |
AC |
54 ms |
15096 KB |
in24.txt |
AC |
54 ms |
15096 KB |
in25.txt |
AC |
54 ms |
15224 KB |
in26.txt |
AC |
54 ms |
15224 KB |
in27.txt |
WA |
54 ms |
15096 KB |
in28.txt |
WA |
54 ms |
15096 KB |
in29.txt |
WA |
54 ms |
15096 KB |
in3.txt |
AC |
4 ms |
10112 KB |
in30.txt |
WA |
54 ms |
15096 KB |
in31.txt |
WA |
55 ms |
15104 KB |
in32.txt |
WA |
55 ms |
15104 KB |
in33.txt |
WA |
55 ms |
15104 KB |
in34.txt |
WA |
55 ms |
14976 KB |
in35.txt |
WA |
56 ms |
15104 KB |
in36.txt |
WA |
56 ms |
15104 KB |
in37.txt |
WA |
56 ms |
15104 KB |
in38.txt |
WA |
73 ms |
20352 KB |
in39.txt |
WA |
73 ms |
21248 KB |
in4.txt |
AC |
58 ms |
14976 KB |
in40.txt |
WA |
76 ms |
20736 KB |
in41.txt |
AC |
56 ms |
15232 KB |
in42.txt |
AC |
56 ms |
15104 KB |
in43.txt |
AC |
56 ms |
15232 KB |
in44.txt |
AC |
55 ms |
15104 KB |
in45.txt |
AC |
56 ms |
15104 KB |
in46.txt |
AC |
73 ms |
21120 KB |
in47.txt |
AC |
74 ms |
20608 KB |
in5.txt |
AC |
58 ms |
15104 KB |
in6.txt |
AC |
72 ms |
20352 KB |
in7.txt |
AC |
58 ms |
15232 KB |
in8.txt |
AC |
58 ms |
14976 KB |
in9.txt |
AC |
58 ms |
14976 KB |
sample1.txt |
AC |
4 ms |
10112 KB |
sample2.txt |
AC |
4 ms |
10112 KB |
sample3.txt |
AC |
4 ms |
10112 KB |