Submission #980901

#TimeUsernameProblemLanguageResultExecution timeMemory
980901vjudge1Beech Tree (IOI23_beechtree)C++17
9 / 100
2093 ms1030664 KiB
#include "beechtree.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using vll = vector <ll>; using vi = vector <int>; vi beechtree (int n, int m, vi p, vi c) { vector <vll> ns(n, vll({})); for (ll i = 0; i < n; i++) { ll u = p[i]; while (u != -1) { ns[u].push_back(i); u = p[u]; } } vi ans; for (ll i = 0; i < n; i++) { bool val = false; do { bool unval = false; vi f(m+3, 0); for (ll j = 0; j < ll(ns[i].size()); j++) { ll par = f[c[ns[i][j]]]; if (par == 0) { if (p[ns[i][j]] != i) unval = true; } else { if (p[ns[i][j]] != ns[i][par-1]) unval = true; } f[c[ns[i][j]]]++; } if (unval) continue; val = true; break; } while (next_permutation(ns[i].begin(), ns[i].end())); if (val) 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...