Submission #1226634

#TimeUsernameProblemLanguageResultExecution timeMemory
1226634dizzy_groovySeptember (APIO24_september)C++20
100 / 100
122 ms15520 KiB
#include "september.h" #include <bits/stdc++.h> using namespace std; void dfs(int i, vector<vector<int>> &gr, vector<int> &mx) { for (auto &j : gr[i]) { dfs(j, gr, mx); mx[i] = max(mx[i], mx[j]); } } int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { vector<int> mx(N); for (int i = 0; i < M; i++) { for (int j = 0; j < N - 1; j++) { mx[S[i][j]] = max(mx[S[i][j]], j); } } vector<vector<int>> gr(N); for (int i = 1; i < N; i++) { gr[F[i]].push_back(i); } dfs(0, gr, mx); int cnt = 0; int r = 1; int cr = 0; while (r < N) { while (cr < r) { for (int i = 0; i < M; i++) { r = max(r, mx[S[i][cr]] + 1); } cr++; } r++; cnt++; } return cnt; }
#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...