#include "beechtree.h"
#include <bits/stdc++.h>
using namespace std;
#define all(v) v.begin(), v.end()
vector<int> beechtree(int n, int m, vector<int> p, vector<int> c)
{
vector<int> v[n];
vector<pair<int,int>> ch;
for (int i=n-1;i>0;i--)
v[p[i]].push_back(c[i]),sort(all(v[i]));
vector<int> ans(n,1);
int pr=0;
for (int i=0;i<n;i++)
{
for (int j=0;j+1<v[i].size();j++)
if (v[i][j]==v[i][j+1]) ans[i]=0;
if (i && v[i].size()) ch.push_back({v[i].size(),i});
}
sort(all(ch));
ch.push_back({0,0});
for (int j=0;j+1<ch.size() && ans[0];j++)
{
set<int> se;
for (int i:v[ch[j+1].second]) se.insert(i);
for (int i:v[ch[j].second])
if (!se.count(i))
ans[0]=0;
}
return ans;
}
# | 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... |