Submission #1061203

#TimeUsernameProblemLanguageResultExecution timeMemory
1061203tolbiBeech Tree (IOI23_beechtree)C++17
0 / 100
0 ms436 KiB
#include "beechtree.h" #include <bits/stdc++.h> using namespace std; std::vector<int> beechtree(int N, int M, std::vector<int> P, std::vector<int> C) { vector<int> ans(N); vector<vector<int>> arr(N); for (int i = 1; i < N; i++){ arr[P[i]].push_back(i); } vector<set<int>> v(N); function<void(int)> dfs = [&](int node)->void{ bool boolean=true; for (auto it : arr[node]){ dfs(it); if (ans[it]==0){ boolean=false; } if (boolean){ if (v[node].size()<v[it].size()) swap(v[node],v[it]); for (auto it : v[it]){ if (v[node].find(it)!=v[node].end()){ boolean=false; break; } else { v[node].insert(it); } } while (v[it].size()) v[it].erase(v[it].begin()); } } if (boolean){ ans[node]=1; v[node].insert(C[node]); } }; dfs(0); sort(ans.begin(), ans.end()); return ans; }//0 alcak mi bakalm
#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...