Submission #1194578

#TimeUsernameProblemLanguageResultExecution timeMemory
1194578ElayV13September (APIO24_september)C++20
0 / 100
4 ms780 KiB
#include "september.h" #include <bits/stdc++.h> using namespace std; const int N = 11; const int INF = INT_MAX; vector < int > adj[N]; int dep[N]; void dfs(int v , int p) { for(int u : adj[v]){ if(u == p) continue; dep[u] = dep[v] + 1; dfs(u , v); } } void get_dep(int n , int m , vector < int > F) { for(int i = 1;i <= n - 1;i++) { adj[F[i]].push_back(i); adj[i].push_back(F[i]); } dfs(0 , -1); } void fix() { for(int i = 0;i < N;i++) dep[i] = 0 , adj[i].clear(); } int solve(int n , int m , vector < int > F , vector < vector < int > > S) { get_dep(n , m , F); vector < int > A; for(int i = 0;i < n - 1;i++) { A.push_back(S[0][i]); } int res = 1; for(int bit = 0;bit < (1 << (int)A.size());bit++) { vector < vector < int > > g; vector < int > cur; for(int i = 0;i < n - 1;i++) { cur.push_back(A[i]); if((1 << i) & bit){ if(cur.size() > 0) g.push_back(cur); cur.clear(); } } if(cur.size()) g.push_back(cur); int k = g.size(); vector < int > com(n + 1 , -1); bool can = 1; for(int i = 0;i < g.size();i++) { for(int x : g[i]) com[x] = i; } for(int i = 0;i < A.size();i++){ for(int j = 0;j < A.size();j++){ if(i == j) continue; if(com[A[i]] == com[A[j]]) continue; if(com[A[j]] > com[A[i]] && dep[A[i]] > dep[A[j]]) can = 0; } } if(can) res = max(res , k); } fix(); 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...