题意:统计以a开头且长度不小于k的并且以b结尾的字符串个数。实际就是让你求区间k~n中b字符的个数,前缀和求即可:res+=b[m-1]-b[k+i-2];
#include<bits/stdc++.h>
using namespace std;
const int N=500010;
typedef long long ll;
int b[N];
int main(){
int n;
cin>>n;
string s;
char a,c;
cin>>s>>a>>c;
int m=s.size();
ll res=0;
if(s[0]==c)b[0]=1;
for(int i=1;i<m;i++){
if(s[i]==c)b[i]++;
b[i]+=b[i-1];
}
for(int i=0;i<m;i++){
if(s[i]==a&&n+i-2<m)res+=b[m-1]-b[n+i-2];
}
cout<<res;
return 0;
}