1 #include <stdio.h>
2 #include <string.h>
3 #include <vector>
4 #include <algorithm>
5 using namespace std;
6 vector <int> edg[1005];
7 int s[1005],q[1005],n,m;
8 int d(int x,int y)
9 {
10 int i,j,k;
11 for(i=0;i<edg[x].size();i++)
12 {
13 int v=edg[x][i];
14 if(s[v]==0)
15 {
16 s[v]=y+1;
17 d(v,y+1);
18 if(y+1>m)
19 m=y+1;
20 }
21 }
22 }
23 int main()
24 {
25 int i,j,k;
26 while(scanf("%d",&n)!=EOF)
27 {
28 for(i=1;i<=n;i++)
29 {
30 if(edg[i].size())
31 {
32 edg[i].clear();
33 }
34 }
35 memset(s,0,sizeof(s));
36 memset(q,0,sizeof(q));
37 for(i=1;i<n;i++)
38 {
39 int x,y;
40 scanf("%d %d",&x,&y);
41 edg[x].push_back(y);
42 edg[y].push_back(x);
43 }
44 s[1]=1;m=0;
45 d(1,1);
46 for(i=1;i<=n;i++)
47 q[s[i]]++;
48 int flg=0;
49 for(i=1;i<m;i++)
50 {
51 if(q[i]>1)
52 {
53 flg=1;
54 break;
55 }
56 }
57 if(flg==1)
58 printf("NO\n");
59 else
60 printf("YES\n");
61 }
62 return 0;
63 }