#include #include using namespace std; int main() { int n; cin >> n; vector adj[n]; vector deg(n,0); vector count(n,1); vector visited(n,false); for(int i = 0; i < n-1; i++){ int u,v; cin >> u >> v; u--; v--; adj[u].push_back(v); adj[v].push_back(u); deg[u]++; deg[v]++; } queue q; for(int i = 0; i < n; i++){ if(deg[i]==1){q.push(i);} } bool can = true; while(!q.empty()){ int r = q.size(); for(int i = 0; i < r; i++){ int f = q.front(); q.pop(); visited[f]=true; for(auto e: adj[f]){ if(!visited[e]){ if(count[f]>count[e]){ can=false; cout << "NO" << "\n"; return 0; }else{ count[e]+=count[f]; deg[e]--; deg[f]--; if(deg[e]==1){q.push(e);} } } } } } for(int i = 0; i