#include using namespace std; typedef long long ll; typedef pair pii; #define fi first #define se second #define mp make_pair #define fastIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); bool ans = false; const int N = (int)2e5 + 10; vector T[N]; int sub[N]; int cnt[N]; void dfs(int u, int pa){ sub[u]=1; for(auto x : T[u]){ if(x != pa){ dfs(x,u); sub[u] += sub[x]; cnt[u] += cnt[x]; } } for(auto x : T[u]){ if(x != pa){ if(sub[x] * 2 > sub[u]){ cnt[u]++; } } } } void re(int u, int v){ cnt[u] -= (sub[v] * 2 > sub[u]); cnt[u] -= cnt[v]; sub[u] -= sub[v]; cnt[v] += cnt[u]; sub[v] += sub[u]; cnt[v] += (sub[u] * 2 > sub[v]); } void reroot(int nd, int pa){ if(cnt[nd] == 0) { ans=true; } for(auto x : T[nd]){ if(x == pa) continue; re(nd, x); reroot(x, nd); re(x, nd); } } int main(){ fastIO; int n; cin >> n; int u, v; for(int i = 1; i < n; i ++ ){ cin >> u >> v; T[u].push_back(v); T[v].push_back(u); } dfs(1,1); reroot(1,1); if(ans){ cout << "YES\n"; } else{ cout << "NO\n"; } return 0; }