Submission #1150816

#TimeUsernameProblemLanguageResultExecution timeMemory
1150816ngano_upat_naSeptember (APIO24_september)C++20
0 / 100
0 ms324 KiB
#include "bits/stdc++.h" #include "september.h" using namespace std; using ll = long long; int solve(int N, int M, vector<int> F, vector<vector<int>> S) { vector<int> cnt(N,0); vector<int> dist_to_leaf(N,-1); for (int x=0; x<N; x++) { int cnt = 0; dist_to_leaf[x] = max(dist_to_leaf[x],0); int node = x; while (true) { if (node == 0) { break; } else { dist_to_leaf[F[node]] = max(dist_to_leaf[node]+1,dist_to_leaf[F[node]]); node = F[node]; } } } int idx = 0; for (int day=1; ; day++) { while (true) { for (int i=0; i<M; i++) { int node = S[i][idx]; cnt[node]++; int cur_node = node; while (true) { if (cur_node == 0) { break; } if (dist_to_leaf[cur_node] == 0) { dist_to_leaf[F[cur_node]]--; } cur_node = F[cur_node]; } } bool ok = true; for (int i=0; i<N; i++) { if (cnt[i] == M && dist_to_leaf[i]!=0) { ok = false; break; } } if (ok) { idx++; break; } else { idx++; } } if (idx<=N-1) { return day; } } }
#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...