#include<bits/stdc++.h>
using namespace std;
int solve(int n,int m,vector<int> pa,vector<vector<int>> s){
int idx[m][n];
int req[n];
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
idx[i][s[i][j]]=j;
}
}
for(int i=n-1;i>=0;i--){
req[i]=idx[0][i];
}
for(int i=n-1;i>0;i--){
req[pa[i]]=max(req[pa[i]],req[i]);
}
int bst=-1,maxidx[m],minidx[m];
int ans=0;
for(int i=0;i<m;i++){
maxidx[i]=-1,minidx[i]=n+1;
}
for(int j=0;j<n;j++){
bst=max(bst,req[s[0][j]]);
for(int i=0;i<m;i++){
maxidx[i]=max(maxidx[i],idx[i][s[0][j]]);
minidx[i]=min(minidx[i],idx[i][s[0][j]]);
}
if(bst<=j){
bool flag=true;
for(int i=0;i<m;i++){
if(minidx[i]!=0||maxidx[i]!=j){
flag=false;
break;
}
}
if(flag){
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... |