Cod sursa(job #583374)

Utilizator Antonius74Antonius Cezar Hegyes Antonius74 Data 19 aprilie 2011 20:10:23
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>
#include <vector>
using namespace std;

int main()
{
	freopen ("strmatch.in", "r", stdin);
	freopen ("strmatch.out", "w", stdout);
	
	char a[200000], b[200000]; 
	scanf ("%s %s", a,b);
	
	
	
	int n,m,aux,anz=0;
	vector <int> poz;
	n=strlen(a);
	m=strlen(b);
	
	for (int i=0;i<m;i++)
		if (b[i]==a[0])
		{
			aux=0;
			for (int j=i+1;j<i+n;j++)
			{
				aux++;
				if (b[j]!=a[aux])
					break;
				if (j==(i+n-1))
				{
					poz.push_back(i);
					anz++;
				}
			}
		}
	
	printf ("%d \n", anz);
	if (poz.size()<=1000)
		for (int i=0;i<poz.size();i++)
			printf ("%d ", poz[i]);
	else
		for (int i=0;i<1000;i++)
			printf ("%d ", poz[i]);
}