제출 #843315

#제출 시각아이디문제언어결과실행 시간메모리
843315SHZhangBeech Tree (IOI23_beechtree)C++17
5 / 100
58 ms19912 KiB
#include "beechtree.h" #include <vector> #include <utility> using namespace std; int n, m; vector<int> p, c; vector<pair<int, int>> children[200005]; bool chain[200005]; int purecolor[200005]; int perms[15]; bool check(int i) { if (chain[i]) { return purecolor[i] != -1; } else { return false; } } std::vector<int> beechtree(int N, int M, std::vector<int> P, std::vector<int> C) { n = N; m = M; p = P; c = C; vector<int> ans; bool ischain = true; for (int i = 1; i < N; i++) { if (P[i] != i-1) ischain = false; children[P[i]].push_back(make_pair(i, C[i])); } if (ischain) { int last = N - 1; while (last >= 1 && C[last] == C[N-1]) last--; vector<int> ans; for (int i = 0; i < last; i++) ans.push_back(0); for (int i = 0; i < n - last; i++) ans.push_back(1); return ans; } for (int i = 0; i < N; i++) { if (check(i)) ans.push_back(1); else ans.push_back(0); } return ans; }
#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...