#include "beechtree.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> beechtree(int N, int M, vector<int> P, vector<int> C) {
    vector<int> ret(N);
    vector<vector<int>> child(N);
    for (int i = 1; i < N; i++) child[P[i]].push_back(i);
    
    vector<int> maxdeg(N);
    for (int i = N-1; i >= 0; i--) {
        for (int v : child[i]) maxdeg[i] = max(maxdeg[i], maxdeg[v]);
        if (maxdeg[i] >= 2) ret[i] = false;
        else ret[i] = true;
        maxdeg[i] = max(maxdeg[i], (int)child[i].size());
    }
    return ret;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |