#include "beechtree.h"
#include<bits/stdc++.h>
using namespace std;
#define vi vector<int>
#define pii pair<int,int>
#define ff first
#define ss second
#define all(x) x.begin(),x.end()
#define pb push_back
const int N = 2e5+100;
vi T[N];
std::vector<int> beechtree(int n, int m, std::vector<int> P, std::vector<int> C)
{
for(int i = 0; i < n; ++i) T[i].clear();
vi res(n);
for(int i = n-1; i >= 0; --i){
T[i].pb(i);
for(int u: T[i]){
T[P[i]].pb(u);
}
}
res[n - 1] = 1;
for(int i = n-2; i >= 0; --i){
vi v;
for(int u: T[i]) v.pb(u);
sort(all(v));
do{
vi col(m+1);
bool ok = true;
for(int j = 1; j < v.size(); ++j){
if(v[col[C[v[j]]]] != P[v[j]]){
ok = false;
break;
}
col[C[v[j]]]++;
}
if(ok){
res[i] = 1;
break;
}
}while(next_permutation(all(v)));
}
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... |