Submission #1071472

#TimeUsernameProblemLanguageResultExecution timeMemory
1071472UmairAhmadMirzaBeech Tree (IOI23_beechtree)C++17
9 / 100
29 ms3524 KiB
#include <bits/stdc++.h> using namespace std; int const N=8; vector<int> child[N]; vector<int> all; set<int> ch_col[N]; vector<int> ans; void dfs(int node){ all.push_back(node); for(int i:child[node]) dfs(i); } vector<int> beechtree(int n, int M, vector<int> P, vector<int> C){ if(n>8) return ans; for (int i = 1; i < n; ++i){ child[P[i]].push_back(i); ch_col[P[i]].insert(C[i]); } ans.resize(n); // for (int i = 0; i < n; ++i) // ans[i]=1; int gv[n]={0}; for(int i=0;i<n;i++){ all.clear(); dfs(i); int sz=all.size(); do{ if(all[0]!=i) break; for (int j = 0; j < sz; ++j) gv[all[j]]=j; map<int,int> ccnt; bool ck=1; for(int j=1;j<sz;j++){ if(gv[P[all[j]]]!=ccnt[C[all[j]]]) ck=0; ccnt[C[all[j]]]++; } ans[i]|=ck; }while(next_permutation(all.begin(), all.end())); } 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...