#include "beechtree.h"
#include <bits/stdc++.h>
using namespace std;
const int N = 300010;
vector <int> g[N];
int res[N];
vector<int> beechtree(int n, int m, std::vector<int> p, std::vector<int> c){
for(int i = 1;i < n;i++){
g[p[i]].push_back(i);
g[i].push_back(p[i]);
}
for(int i = 1;i < n;i++){
set <int> s;
if(p[i] != 0){
res[i] = 1;
}
else{
int v = i;
for(auto x : g[v]){
if(x == 0)
continue;
s.insert(c[x]);
}
int tam = g[v].size();
if(tam-1 == s.size())
res[i] = 1;
else
res[i] = 0;
}
}
res[0] = 1;
vector <pair <int, int>> comp;
for(int i = 1;i < n;i++){
if(res[i] == 0){
res[0] = 0;
}
if(p[i] == 0){
int v = i;
int tam = g[v].size();
tam--;
comp.push_back({tam, v});
}
}
sort(comp.begin(), comp.end());
comp.push_back({g[0].size(), 0});
set <int> vertices;
for(auto [tam, v] : comp){
//cout << tam << ' ' << v << '\n';
int cnt = 0;
for(auto x : g[v]){
if(x == 0)
continue;
if(vertices.find(c[x]) != vertices.end())
cnt++;
}
if(cnt != vertices.size()){
res[0] = 0;
break;
}
for(auto x : g[v]){
if(x == 0)
continue;
vertices.insert(c[x]);
}
}
set <int> aux;
for(auto x : g[0]){
if(aux.find(c[x]) != aux.end()){
res[0] = 0;
}
aux.insert(c[x]);
}
vector <int> ans;
for(int i = 0;i < n;i++){
ans.push_back(res[i]);
}
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... |