Cod sursa(job #443205)

Utilizator ncbllrNegrii Costin ncbllr Data 16 aprilie 2010 13:42:46
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<stdio.h>
#define maxn 2000001
#include<iostream.h>

char sir1[ maxn ], sir2[ maxn ];
int sol[ maxn ];

int ver(char *a,char *b, int n)// daca sirul a de lungime n se potriveste cu sirul b la inceputul lui b :d
{
	for( int i = 0; i < n; ++i) if( a[i] != b[i]) return 0;
	return 1;
}

int main()
{	
	freopen("strmatch.in","r",stdin);
	freopen("strmatch.out","w",stdout);
	int nr_sol=0;
	cin>>sir1;
	int l1 = strlen( sir1 );
	cin>>sir2;
	int l2 = strlen( sir2 );
	
	for( int i = 0; i + l1 <= l2; ++i)
	{
		if( ver( sir1, sir2 + i, l1 ) )
			sol[ ++nr_sol ] = i;
		
	}
	cout<< nr_sol<<endl;
	for( int i = 1; i <= nr_sol; ++i) if( i > 1000) break; else cout<<sol[i]<<" ";
	
	return 0;
}