#include #define int int64_t using namespace std; int N; set v[200010]; set> foglie[200010]; vector dim(200010, 1); signed main(){ ios_base::sync_with_stdio(); cin.tie(0); cin>>N; for(int i=0;i>a>>b;--a;--b; v[a].insert(b); v[b].insert(a); } queue ok; for(int i=0;i first<=dim[i])ok.push(foglie[i].begin()->second); } int tolti = 0; while(ok.size()){ auto x = ok.front(); ok.pop(); if(v[x].size()==0)continue; tolti++; int par = *v[x].begin(); v[x].clear(); v[par].erase(x); dim[par]+=dim[x]; foglie[par].erase({dim[x], x}); if(foglie[par].begin()-> first<=dim[par])ok.push(foglie[par].begin()->second); if(v[par].size()==1){ int q = *(v[par].begin()); foglie[q].insert({dim[par], par}); if(foglie[q].begin()-> first<=dim[q])ok.push(foglie[q].begin()->second); } } if(tolti>=N-2){ cout<<"YES\n"; }else{ cout<<"NO\n"; } }