#include "beechtree.h"
#include<bits/stdc++.h>
using namespace std;
vector<int> beechtree(int N, int M, vector<int> P, vector<int> C){
vector<vector<int>> st(N);
for (int i=N-1; i>=0; i--){
st[i].push_back(i);
if (i > 0){
for (int x : st[i]) st[P[i]].push_back(x);
}
}
vector<int> res(N, 0);
for (int i=0; i<N; i++){
sort(st[i].begin(), st[i].end());
while (true){
res[i] = 1;
for (int j=1; j<st[i].size(); j++){
int f = 0;
for (int k=1; k<j; k++) f += (C[st[i][j]] == C[st[i][k]]);
if (P[st[i][j]] != st[i][f]) res[i] = 0;
}
if (res[i]) break;
next_permutation(st[i].begin(), st[i].end());
if (st[i][0] != i) break;
}
}
return res;
}
# | 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... |