Cod sursa(job #493952)

Utilizator n3msizN3msiz n3msiz Data 20 octombrie 2010 08:42:00
Problema Potrivirea sirurilor Scor 24
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <stdio.h>
#include <string.h>
char sir[1020],aux[1020];
int n,lg,i,sol[1020],j,k,nr,ok,verif;

FILE*f=fopen("strmatch.in","r");
FILE*g=fopen("strmatch.out","w");
	

void tipar(){
	fprintf(g,"%d\n",nr);
		for(i=1;i<=nr;i++)
			fprintf(g,"%d ",sol[i]);
}

int main(){
	
	fscanf(f,"%s",&sir);
	fscanf(f,"\n");
	fscanf(f,"%s",&aux);
	verif=1;
	lg=strlen(aux);
	n=strlen(sir);
	for(i=0;i<lg&&verif;){
		if(sir[0]==aux[i]){
			ok=1;
			for(k=0,j=i;k<n && verif;k++,j++){
				if(sir[k]!=aux[j]){
					ok=0;
					break;
				}
			}
			if(ok){
				if(nr==1000){
					verif=0;
					tipar();
				}
				else{
					sol[++nr]=i;
					i++;
				}
			}
			else
				i=j;
		}
		else
			i++;
	}
	
	if(verif){
		fprintf(g,"%d\n",nr);
		for(i=1;i<=nr;i++)
			fprintf(g,"%d ",sol[i]);
	}
	fclose(f);
	fclose(g);
	return 0;
}