#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |