Cod sursa(job #332039)

Utilizator AnDrEwBoYA Andrei AnDrEwBoY Data 16 iulie 2009 12:43:32
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<stdio.h>

#define MAX_N 2000000
char A[MAX_N],B[MAX_N];
int sol[1001];
int n,m,k;

int len(char *p) { return (*p ? len(++p)+1 : 0); }
void read(),solve(),show();
int main()
{
	freopen("strmatch.in","r",stdin);
	freopen("strmatch.out","w",stdout);
	
	read();
   	solve();
	show();
	
	fclose(stdin); fclose(stdout);
	return 0;
}



void read()
{
	scanf("%s",&A);
	scanf("%s",&B);
	 
	n = len(A);
	m = len(B);
}

void solve()
{
	int i,j;
	for(i = 0; i <= m-n; i++)
	{
		j = 0;
		while(A[j] == B[i+j] && j < n) j++; 
		if(j == n) sol[k++] = i;	
		if(k == 1000) break;
	}
}

void show()
{
	printf("%d\n",k);
	for(int i = 0; i < k; i++)
		printf("%d ",sol[i]);
}