#include "september.h"
#include <bits/stdc++.h>
using namespace std;
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
vector<vector<int>> s(1);
vector<set<int>> vs(M);
vector<int> rs(N);
rs[0]=N;
for(int i=0;i<N-1;i++){
s[s.size()-1].push_back(S[0][i]);
rs[S[0][i]] = s.size()-1;
bool flag=true;
for(int j=0;j<M;j++){
vs[j].insert(S[j][i]);
if(vs[j]!=vs[0]){
flag=false;
}
}
if(flag){
s.push_back({});
}
}
s.pop_back();
int ans=0;
vector<bool> visited(N,false);
visited[0]=true;
int mi=s.size()-1;
for(int i=s.size()-1;i>=0;i--){
if(mi>i){
mi=i;
}
for(int j:s[i]){
mi = min(mi,rs[F[j]]);
}
if(mi==i){
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... |