제출 #1241549

#제출 시각아이디문제언어결과실행 시간메모리
1241549noyancanturk참나무 (IOI23_beechtree)C++17
5 / 100
42 ms10568 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...