#include<bits/stdc++.h>
#include "september.h"
using namespace std;
int solve(int n, int m, vector<int>f, vector<vector<int>>S){
	vector<int>d(n, 0);
	for(int i = 1; i < n; i++){
		d[f[i]]++;
	}
	int ans = 0;
	vector<int>cnt(n, 0);
	vector<bool>app(n, false);
	for(int i = 0, cnt_same = 0, cnt_d_0 = 0, len = 0; i + 1 < n; i++){
		for(int j = 0; j < S.size(); j++){
			if(++cnt[S[j][i]] == S.size()){
				cnt_same++;
			}	
		}		
		app[S[0][i]] = true;
		if(--d[f[S[0][i]]] == 0 && app[f[S[0][i]]]){
			cnt_d_0++;
		}	
		if(d[S[0][i]] == 0){
			cnt_d_0++;
		}
		if(cnt_same == ++len && cnt_d_0 == len){
			for(int j = 0; j < len; j++){
				cnt[S[0][i - j]] = 0;
			}
			cnt_same = len = cnt_d_0 = 0;
			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... |