#include<bits/stdc++.h>
#define ns "-1"
#define fs(i,x,y,z) for(ll i=x;i<=y;i+=z)
#define ft(i,x,y,z) for(ll i=x;i>=y;i+=z)
#define ll long long
#define ull unsigned long long
#define db double
#define ms(a,b) memset(a,b,sizeof(a))
#define sz(a) sizeof(a)
using namespace std;
const int rw[]={-1,0,1,0,-1,1,-1,1},cl[]={0,1,0,-1,-1,1,1,-1};
const int N=100001,inf=0x7f7f7f7f;
int n,m,f,flg,k;//f:第一次出现的位置;k:出现的总次数;
char s[N],p[N];//s:总串;p:模式串。
//无解输出0 0
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>(s+1)>>m>>(p+1);
fs(start,1,(n-m+1),1){
flg=0;
fs(q,start,(start+m-1),1){//逐个比较
//cout<<"q:"<<' '<<q<<' '<<s[q]<<' '<<p[q-start+1]<<endl;
if(s[q]!=p[q-start+1]){
flg=1;break;
}
}
if(flg==0){
if(f==0) f=start;
k++;
}
}
cout<<f<<' '<<k;
return 0;
}
//O((N-M)M)=O(NM-M^2)=O(NM)
BF算法
0%
召唤伊斯特瓦尔