Cod sursa(job #192575)

Utilizator raduzerRadu Zernoveanu raduzer Data 31 mai 2008 12:13:14
Problema Potrivirea sirurilor Scor 14
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include <string.h>

int n,m,k,i,j,t,a[15],b[15],q,c[1005];
char x;

int main()
{
	freopen("strmatch.in","r",stdin);
	freopen("strmatch.out","w",stdout);
	k=0;
	while (1)
	{
		scanf("%c",&x);
		if (x=='\n') break;
		++k;
		if (x>='0' && x<='9') b[k]=b[k-1]+x;
		else b[k]=b[k-1]+(x-'A');
	}
	n=0;
	while (1)
	{
		scanf("%c",&x);
		if (x=='\n') break;
		++n;
		if (x>='0' && x<='9') a[n]=a[n-1]+x;
		else a[n]=a[n-1]+(x-'A');
	}
	int sol=0;
	for (i=k; i<=n; ++i)
		if (b[k]==a[i]-a[i-k])
		{
			q=1;
			for (j=1; j<=k; ++j) if (b[j]!=a[i-k+j]-a[i-k]) { q=0; break; }
			if (q) ++sol;
			if (sol<=1000) c[sol]=i-k;
		}
	printf("%d\n",sol);
	for (i=1; i<=sol; ++i) printf("%d ",c[i]);
	return 0;
}