#include using namespace std; typedef long long ll; typedef pair pi; const int MAXN=200005; #define FOR(i,a,b) for(int i=(a);i<=(b);i++) #define fst first #define snd second #define sz(v) ((int)(v).size()) #define all(v) (v).begin(),(v).end() #define pb push_back int N; setadj[MAXN]; int sze[MAXN],ch[MAXN],p[MAXN]; int dp[MAXN]; // void dfs(int v ,int par){ // p[v]=par; // for(auto i:adj[v])if(i!=par){ // dfs(i,v); // } // } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>N; FOR(i,1,N-1){ int a,b;cin>>a>>b; adj[a].insert(b); adj[b].insert(a); } FOR(i,1,N)dp[i]=1; priority_queue,greater >pq; FOR(i,1,N)if(sz(adj[i])==1)pq.emplace(1,i); while(sz(pq)){ int s,v;tie(s,v)=pq.top();pq.pop(); // assert(sz(adj[v])==1); if(dp[v]==N)break; int x=*adj[v].begin(); // cout<dp[x]){ cout<<"NO\n"; return 0; } adj[x].erase(v); dp[x]+=dp[v]; if(sz(adj[x])==1)pq.push(pi(dp[x],x)); } cout<<"YES\n"; }