Pagini recente » Cod sursa (job #1013570) | Cod sursa (job #1726120) | Cod sursa (job #2902225) | Cod sursa (job #2671049) | Cod sursa (job #2545044)
#include <iostream>
#include<cstring>
using namespace std;
char a[200],b[200];
int l[200]={0},p[200]={0},la,lb;
void schpat()
{
int i,j,nr[1000],k,n;
for(i=0;i<200;i++)
nr[i]=-1;
la=strlen(a);
lb=strlen(b);
i=0;
j=0;
n=0;
k=0;
while(i<lb)
if(b[i]==a[j])
{
i++;
j++;
if(j==la)
{
nr[k++]=i-la;
n++;
j=l[j-1];
}
}
else if(j==0)
i++;
else
j=l[j-1];
cout<<n<<'\n';
if(n<1000)
for(i=0;i<n;i++)
if(nr[i]>-1)
cout<<nr[i]<<' ';
else
for(i=0;i<1000;i++)
if(nr[i]>-1)
cout<<nr[i]<<' ';
}
void sir()
{
int i,j;
la=strlen(a);
lb=strlen(b);
i=1;
j=0;
while(i<la)
if(a[i]==a[j])
{
j++;
l[i]=j;
i++;
}
else if(j==0)
l[i++]=0;
else
j=l[j-1];
}
int main()
{
cin.getline(a, 200);
cin.getline(b,200);
sir();
schpat();
return 0;
}