Pagini recente » Cod sursa (job #2250344) | Cod sursa (job #1843946) | Clasament teme2_acmunibuc_2013 | Cod sursa (job #2966468) | Cod sursa (job #1163556)
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define NMAX 2000010
using namespace std;
char A[NMAX],B[NMAX];
int i,L,m,k,r,p[NMAX],x,y;
int main()
{
freopen("strmatch.in","r",stdin);
freopen("strmatch.out","w",stdout);
scanf("%s\n%s\n",A,B);
x=strlen(A); y=strlen(B);
for(i=0;i<y;++i) p[i]=i;
k=-1;
m=y;
for(L=0;L<x;++L)
{
for(i=0;i<m;++i)
{
if(L+p[i]>y) break;
if(B[L+p[i]]==A[L])
p[++k]=p[i];
}
m=k+1;k=-1;
}
printf("%d\n",m);
r=min(m,1000);
for(i=0;i<r;++i) printf("%d ",p[i]);
return 0;
}