Submission #1188420

#TimeUsernameProblemLanguageResultExecution timeMemory
1188420MatteoArcariBeech Tree (IOI23_beechtree)C++20
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<vector<int>> adj(n); for (int i = 1; i < n; i++) { adj[p[i]].push_back(i); } vector<int> ans(n); vector<int> maxD(n); vector<set<int>> col(n); auto dfs = [&](auto &&dfs, int i) -> void { for (int j: adj[i]) { dfs(dfs, j); maxD[i] = max(maxD[i], maxD[j] + 1); col[i].insert(c[j]); } if (maxD[i] == 0) { ans[i] = 1; } if ((maxD[i] == 1 || maxD[i] == 2) && adj[i].size() == col[i].size()) { ans[i] = 1; } }; dfs(dfs, 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...