#include using namespace std; typedef pair pii; const int N = 2e5 + 2; int n, cnt[N], val[N], mrg; bool bio[N]; vector adj[N]; priority_queue, greater > pq; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> n; for (int i = 1; i < n; ++i) { int u, v; cin >> u >> v, --u, --v; adj[u].push_back(v); adj[v].push_back(u); ++cnt[u]; ++cnt[v]; } for (int i = 0; i < n; ++i) { val[i] = 1; if (cnt[i] == 1) pq.push({1, i}); } while (!pq.empty()) { int node = pq.top().second; pq.pop(); bio[node] = 1; int par = -1; for (int x : adj[node]) { if (bio[x]) continue; par = x; } if (par == -1 || val[par] < val[node]) break; val[par] += val[node]; --cnt[par]; ++mrg; if (cnt[par] == 1) pq.push({val[par], par}); } if (mrg == n - 1) cout << "YES\n"; else cout << "NO\n"; return 0; }