Pagini recente » Cod sursa (job #1235115) | Cod sursa (job #1991075) | Statistici CIRSTEA IONELA-MADALINA (Madalina_Cirstea) | Cod sursa (job #2271425) | Cod sursa (job #1466438)
#include <bits/stdc++.h>
using namespace std;
#define MaxSize 4000013
vector <int> KMP (string s){
vector <int> pi(MaxSize,0);
pi[0]=0;
for (int i=1;i<s.size();++i){
int k = pi[i-1];
while(s[i]!=s[k] && k>0) k = pi[k-1];
if (s[i]==s[k]) ++k;
pi[i]=k;
}
return pi;
}
string a ,b;
int sol[1013];
int main(void) {
ifstream cin("strmatch.in");
ofstream cout("strmatch.out");
cin>>a>>b;
int size = a.size();
a+='$'+b;
vector <int> Match = KMP(a);
for (int i=a.size()-b.size();i<Match.size();++i)
if (Match[i]==size && sol[0]<1000)
sol[++sol[0]]=i-2*size;
cout<<sol[0]<<"\n";
for (int i=1;i<=sol[0];++i)
cout<<sol[i]<<" ";
return 0;
}