#include #include #include using namespace std; int N; int d[2000]; vector v[2000]; void DFS(int O, int P, int x) { d[x]++; for(int vi = 0; vi < v[O].size(); vi++) { if( v[O][vi] == P ) continue; DFS(v[O][vi], O, x+1); } } int main() { while( scanf("%d", &N) != EOF ) { for(int Ni = 0; Ni <= N; Ni++) d[Ni] = 0; for(int Ni = 1; Ni <= N; Ni++) v[Ni].clear(); for(int Ni = 1; Ni < N; Ni++) { int a, b; scanf("%d %d", &a, &b); v[a].push_back(b); v[b].push_back(a); } DFS(1, 1, 0); bool OK = true; for(int Ni = 0; Ni < N; Ni++) if( d[Ni] > 1 && d[Ni+1] != 0 ) OK = false; if( OK ) puts("YES"); else puts("NO"); } }