제출 #1233994

#제출 시각아이디문제언어결과실행 시간메모리
1233994mariza참나무 (IOI23_beechtree)C++20
9 / 100
26 ms3400 KiB
#include "beechtree.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const ll N=8; vector<ll> sub; vector<ll> t[N]; void dfs(ll curr){ sub.push_back(curr); for(auto nxt:t[curr]){ dfs(nxt); } } vector<int> beechtree(int n, int m, vector<int> p, vector<int> c){ for(ll i=1; i<n; i++){ t[p[i]].push_back(i); } vector<int> ans; for(ll i=0; i<n; i++){ sub.clear(); dfs(i); ans.push_back(0); do{ // cout<<i<<endl; ll f[n], x[m+1]={}; for(auto j:sub){ if(j==i) continue; f[j]=x[c[j]]; x[c[j]]++; } bool ok=1; for(auto j:sub){ if(j==i) continue; if(sub[f[j]]!=p[j]) ok=0; } ans[i]|=ok; } while(next_permutation(sub.begin()+1,sub.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...