Pagini recente » Cod sursa (job #3196475) | Cod sursa (job #3268977) | Cod sursa (job #3282064) | Cod sursa (job #3230618) | Cod sursa (job #3257866)
#include <bits/stdc++.h>
#define NMAX 5020200
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
string s,a;
int j, lps[NMAX],cnt,nr,i;
int main()
{
fin>>a>>s;
s=a+'#'+s;
i=1;
while(i<s.size())
{
if(s[i]==s[j] && j<i)
{
++j;
lps[i++]=j;
if(j==a.size())
++nr;
}
else
{
if(j==0)
lps[i++]=0;
else j=lps[j-1];
}
}
fout<<nr<<'\n';
nr=min(nr, 999);
for(int i=a.size()+2;i<=s.size() && cnt<=nr;++i)
if(lps[i]==a.size())
{
fout<<i-2*a.size()<<" ";
++cnt;
}
return 0;
}