#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);
}
ll possibleDays = INT_MAX;
for(vector<int> record : S) {
set<ll> curProcessing;
vector<set<ll>> tree = initialTree;
ll curDays = 0;
for(int e : record) {
curProcessing.insert(tree[e].begin(), tree[e].end());
curProcessing.erase(e);
tree[F[e]].erase(e);
if(curProcessing.empty()) ++curDays;
}
possibleDays = min(possibleDays, curDays);
}
return possibleDays;
}
# | 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... |