Cod sursa(job #527167)

Utilizator Light532Light 532 Light532 Data 30 ianuarie 2011 19:39:50
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>

int apps[1000];
int n;
char text[2000000];
char pattern[2000000];
int NaiveMatch(char *t, char *p, int *apps,int &nSize)
{
	int i=0;
	int j=0;
	nSize=0;
	while(t[i] != 0)
	{
		j=0;
		while(t[i] == p[j] && p[j]!=0)
		{
			i++;
			j++;
		}
		
		if(p[j] == 0)
		{
			//matching succeeded
			apps[nSize] = i-j;
			nSize++;
		}
		i = i-j;
		i++;
	}
	return 0;
}

int main()
{
	FILE *f,*g;
	int i;
	f = fopen("strmatch.in","r");
	g = fopen("strmatch.out","w");
	
	fscanf(f,"%s %s",pattern,text);
	NaiveMatch(text,pattern,apps,n);
	fprintf(g,"%d\n",n);
	for(i=0;i<n;i++)
	{
		fprintf(g,"%d ",apps[i]);
	}
	fclose(f);
	fclose(g);
	return 0;
}