Cod sursa(job #180814)

Utilizator mordredSimionescu Andrei mordred Data 17 aprilie 2008 16:09:43
Problema Potrivirea sirurilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
#include<string.h>
#define min(a,b) ((a>b)?b:a)
#define maxx 2000002
char a[maxx],b[maxx];

long long i,j,k,n,sol[maxx];


int main(){
freopen("strmatch.in","r",stdin);
freopen("strmatch.out","w",stdout);

gets(a);gets(b);gets(b);

if(strlen(a)>strlen(b))
	{printf("0");return 0;}

for(i=0;i<strlen(b)-strlen(a);i++)
	{
	for(j=0,k=1;j<strlen(a)&&k;j++)
		if(a[j]!=b[i+j])
			{k=0;i+=j;}
	if(k==1)
		{
		n++;
		if(n<1000)
			sol[n-1]=i;
		i++;
		}
	}

printf("%d\n",n);
for(i=0;i<min(1000,n);i++)
	printf("%d ",sol[i]);

return 0;
}