913B - Christmas Spruce - CodeForces Solution


implementation trees *1200

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;
vector<int> adj[N];
vector<int> vis(N);
vector<int> leaf(N);


bool dfs(int v) {
	vis[v] = 1;
	int cnt = 0;
	for(auto& u : adj[v]) {
		if(!vis[u]) {
			if(leaf[u] == 1 && u != 1) {
				cnt++;
			}
			if(!dfs(u)) {
				return false;
			}
		}
	}
	if(cnt > 0 && cnt < 3 || (cnt == 0 && leaf[v] > 1)) {
		return false;
	}
	return true;
}


int main() {
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    int n; cin >> n;
    
    for(int i = 2; i <= n; i++) {
    	int a; cin >> a;
    	adj[a].push_back(i);
    	adj[i].push_back(a);
    	leaf[i]++;
    	leaf[a]++;
    }
   	cout << (dfs(1) == true ? "Yes" : "No") << endl;

    return 0;
}


Comments

Submit
0 Comments
More Questions

1660A - Vasya and Coins
1660E - Matrix and Shifts
1293B - JOE is on TV
1584A - Mathematical Addition
1660B - Vlad and Candies
1472C - Long Jumps
1293D - Aroma's Search
918A - Eleven
1237A - Balanced Rating Changes
1616A - Integer Diversity
1627B - Not Sitting
1663C - Pōja Verdon
1497A - Meximization
1633B - Minority
688B - Lovely Palindromes
66B - Petya and Countryside
1557B - Moamen and k-subarrays
540A - Combination Lock
1553C - Penalty
1474E - What Is It
1335B - Construct the String
1004B - Sonya and Exhibition
1397A - Juggling Letters
985C - Liebig's Barrels
115A - Party
746B - Decoding
1424G - Years
1663A - Who Tested
1073B - Vasya and Books
195B - After Training