Submission #980950

#TimeUsernameProblemLanguageResultExecution timeMemory
980950vjudge1Beech Tree (IOI23_beechtree)C++17
9 / 100
43 ms11460 KiB
#include <bits/stdc++.h> #define endl '\n' #define mp make_pair #define pb push_back #define f first #define s second #define fo(i,n) for(auto i =0 ; i < n;i++) #define fore(i,l,r) for(auto i = l; i < r;i++) #define forex(i,r,l) for(auto i = r; i >= l; i--) #define ffo(i,n) forex(i,n-1,0) #define all(x) x.begin(),x.end() #define lsb(x) x&(-x) #define sz(x) (int)x.size() #define gcd(a,b) __gcd(a,b) #define vii vector<ii> using namespace std; using ll = long long; using ull = unsigned long long; using vi = vector<int>;using ii = pair<int,int>;using mii = map<int,int>; // #pragma GCC target ("avx2") // #pragma GCC optimization ("O3") // #pragma GCC optimization ("unroll-loops") // bool are_connected(vi A, vi B); const int N = 9; vi graph[N];vi res,c,p; vi dfs(int nodo){ // cout << nodo << endl; cout.flush(); vi hijos;hijos.pb(nodo); for(int v :graph[nodo]){ vi act = dfs(v); for(int v :act)hijos.pb(v); } sort(all(hijos)); // cout << "Nodo " << nodo << endl; // for(auto v: hijos) cout << v << " ";cout<<endl; do{ // vi acabe = hijos;reverse(all(acabe)); // if(is_sorted(all(acabe)))break; vi cn(505, 0); bool no = 1; if(hijos[0] != nodo) no = 0; else{ fore(i,1,sz(hijos)){ if(hijos[cn[c[hijos[i]]]] != p[hijos[i]]){no=0;break;} cn[c[hijos[i]]] ++; } } if(no){res[nodo] = 1; break;} }while(std::next_permutation(all(hijos))); return hijos; } vi beechtree(int n, int m, vi P, vi C){c=C;p=P; res.resize(n,0); fore(i,1,n){ graph[p[i]].pb(i); } dfs(0); 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...