Submission #1241339

#TimeUsernameProblemLanguageResultExecution timeMemory
1241339mychecksedadBeech Tree (IOI23_beechtree)C++17
9 / 100
2116 ms1844204 KiB
#include "beechtree.h" #include<bits/stdc++.h> using namespace std; #define vi vector<int> #define pii pair<int,int> #define ff first #define ss second #define all(x) x.begin(),x.end() #define pb push_back const int N = 2e5+100; vi T[N]; std::vector<int> beechtree(int n, int m, std::vector<int> P, std::vector<int> C) { for(int i = 0; i < n; ++i) T[i].clear(); vi res(n); for(int i = n-1; i >= 0; --i){ T[i].pb(i); for(int u: T[i]){ T[P[i]].pb(u); } } res[n - 1] = 1; for(int i = n-2; i >= 0; --i){ vi v; for(int u: T[i]) v.pb(u); sort(all(v)); do{ vi col(m+1); bool ok = true; for(int j = 1; j < v.size(); ++j){ if(v[col[C[v[j]]]] != P[v[j]]){ ok = false; break; } col[C[v[j]]]++; } if(ok){ res[i] = 1; break; } }while(next_permutation(all(v))); } return res; }
#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...