#include "september.h"
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int pos[maxn];
int con[maxn];
vector<int>E[maxn];
void dfs(int nd){
con[nd] = pos[nd];
int mx = -1;
for(auto i : E[nd]){
dfs(i);
mx = max(mx, pos[i]);
}
if(mx > pos[nd]){
con[nd] = mx;
}
}
int solve(int N, int M, vector<int> F, vector<vector<int>> S){
for(int i = 0;i < N;i++) E[i].clear();
for(int i = 1;i < N;i++) E[F[i]].push_back(i);
for(int i = 0;i < N-1;i++){
pos[S[0][i]] = i;
}
dfs(0);
int mx = 0;
int K = 0;
for(int i = 0;i < N-1;i++){
mx = max(mx, con[S[0][i]]);
if(mx == i){
K++;
}
}
return K;
}
# | 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... |