Submission #1211376

#TimeUsernameProblemLanguageResultExecution timeMemory
1211376omsincoconutBeech Tree (IOI23_beechtree)C++17
0 / 100
1 ms328 KiB
#include "beechtree.h" #include <bits/stdc++.h> using namespace std; vector<int> beechtree(int N, int M, vector<int> P, vector<int> C) { vector<int> ret(N); vector<vector<int>> child(N); for (int i = 1; i < N; i++) child[P[i]].push_back(i); vector<int> maxdeg(N); vector<int> have1(N), have2(N); for (int i = N-1; i >= 0; i--) { for (int v : child[i]) { maxdeg[i] = max(maxdeg[i], maxdeg[v]); have1[i] += have1[v]-(C[v] == 1); have2[i] += have2[v]-(C[v] == 2); } if (maxdeg[i] >= 2 || (have1[i] > 0 && have2[i] > 0)) ret[i] = false; else ret[i] = true; maxdeg[i] = max(maxdeg[i], (int)child[i].size()); if (C[i] == 1) have1[i]++; else have2[i]++; for (int v : child[i]) { have1[i] += (C[v] == 1); have2[i] += (C[v] == 2); } } return ret; }
#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...