#include "beechtree.h"
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
const int lim=2e5+100;
int n,m;
vector<int>p,c,v[lim];
int state[lim],have[lim][2];
vector<int>beechtree(int N,int M,vector<int>P,vector<int>C){
n=N,m=M;
p=P,c=C;
vector<int>ans(n);
ans[n-1]=ans[n-2]=1;
for(int i=n-3;0<=i;i--){
ans[i]=ans[i+1]&&c[i+1]==c[i+2];
}
return ans;
// for(int i=1;i<n;i++){
// c[i]--;
// v[p[i]].pb(i);
// state[p[i]]|=1<<c[i];
// }
// vector<int>ans(n,0);
// for(int i=n-1;0<=i;i--){
// if(__builtin_popcount(state[i])!=v[i].size())continue;
// if(state[i]==1)have[i][0]++;
// if(state[i]==2)have[i][1]++;
// int nope=0;
// for(int j:v[i]){
// have[i][0]+=have[j][0];
// have[i][1]+=have[j][1];
// nope|=!ans[j];
// }
// if(!nope&&!have[i][0]&&!have[i][1]){
// ans[i]=1;
// }
// }
// return ans;
}
// std::vector<int> beechtree(int N, int M, std::vector<int> P, std::vector<int> C)
// {
// return {};
// }
# | 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... |