Cod sursa(job #557110)

Utilizator thebest001Neagu Rares Florian thebest001 Data 16 martie 2011 14:23:53
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
#include<string.h>
#define NMAX 1002

int ap[130];
char a[NMAX][NMAX];
int t[NMAX][NMAX];
char r[NMAX][NMAX];
char s[NMAX];

int main()
{
	freopen("matrix.in","r",stdin);
	freopen("matrix.out","w",stdout);
	int n,m,l,rez=0;
	int i,j;
	scanf("%d %d\n",&m,&n);
	for (i=1;i<=m;i++){
		gets(s);
		strcpy(a[i],"0");
		strcat(a[i],s);
	}
	for (i=1;i<=n;i++){
		gets(s);
		for (j=0;j<n;j++)
			ap[s[j]]++;
	}
	for (l='a';l<='z';l++)
		for (i=1;i<=m;i++)
			for (j=1;j<=m;j++){
				t[i][j]=t[i][j-1]+t[i-1][j]-t[i-1][j-1];
				if (a[i][j]==l) t[i][j]++;
				if (i>=n && j>=n){
					if (t[i][j]-t[i-n][j]-t[i][j-n]+t[i-n][j-n]!=ap[l])
						r[i][j]=1;
				}
			}
	for (i=n;i<=m;i++)
		for (j=n;j<=m;j++)
			if (r[i][j]==0)
				rez++;
	printf("%d",rez);
	return 0;
}