#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
vector<set<ll>> initialTree(N);
for (int i = 1; i < F.size(); i++) {
initialTree[F[i]].insert(i);
}
set<ll> curProcessing;
map<ll,ll> seen;
ll curDay = 0;
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < M; j++) {
curProcessing.insert(S[j][i]);
seen[S[j][i]]++;
curProcessing.insert(initialTree[S[j][i]].begin(), initialTree[S[j][i]].end());
if(seen[S[j][i]] == M) {
curProcessing.erase(S[j][i]);
initialTree[F[S[j][i]]].erase(S[j][i]);
}
}
if(curProcessing.empty()) ++curDay;
}
return curDay;
}
# | 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... |