# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1179115 | stdfloat | September (APIO24_september) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "september.h"
#include "stub.cpp"
using namespace std;
int solve(int n, int M, vector<int> F, vector<vector<int>> S) {
vector<int> E[n];
for (int i = 1; i < n; i++)
E[F[i]].push_back(i);
vector<int> ind(n);
for (auto i : S) {
for (int j = 0; j < n - 1; j++)
ind[i[j]] = max(ind[i[j]], j);
}
int cnt = 0, r = 0;
for (int i = 0; i < n - 1; i++) {
r = max(r, i);
for (auto j : S) {
for (auto k : E[j[i]])
r = max(r, ind[k]);
}
cnt += (i == r);
}
return cnt;
}