#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
typedef vector<vi> vii;
int solve(int n, int m, vector<int> f, vector<vector<int>> s)
{
vii children(n, vi());
for (int i = 1; i < n; i++)
children[f[i]].push_back(i);
if (m!=1)
return 1;
vi constraint = s[0];
vector<bool> done(n, false);
int threshold = 0, ans = 0;
for (int i = 0; i < n-1; i++)
{
for (auto j : children[constraint[i]])
{
if (!done[j])
{
for (int k = max(i+1, threshold+1); k < n; k++)
{
done[constraint[k]] = true;
if (constraint[k] == j)
{
threshold = k;
}
}
}
}
if (i >= threshold)
ans++;
}
return ans;
}
# | 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... |