Pagini recente » Cod sursa (job #3187277) | Cod sursa (job #2046515) | Cod sursa (job #1671174) | Cod sursa (job #688268) | Cod sursa (job #921686)
Cod sursa(job #921686)
#include <fstream>
#include <cstring>
#define NMAX 2000001
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
int i,j,n1,n2,rez[NMAX],k,ok;
char s1[NMAX],s2[NMAX];
int main()
{
fin.get(s2,NMAX);
fin.get();
fin.get(s1,NMAX);
n1=strlen(s1);
n2=strlen(s2);
i=0;
j=-1;
if(n2>n1)
fout<<0<<'\n';
else
{
while(i<=n1)
{
ok=0;
if(j>=0&&s1[i]!=s2[j+1])
{j=-1;ok=1;}
if(s1[i]==s2[j+1])
j++;
if(j+1==n2)
{rez[++k]=i-j;ok=1;j=-1;}
i++;
if(ok==1)
i--;
}
fout<<k<<'\n';
for(i=1;i<=k;++i)
fout<<rez[i]<<" ";
}
return 0;
}