Cod sursa(job #44863)

Utilizator m_dersidanDersidan Mihai m_dersidan Data 31 martie 2007 19:20:31
Problema Matrix Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
# include <stdio.h>
# include <string.h>

# define  _fin	"matrix.in"
# define  _fout "matrix.out"

# define  maxn	1001
# define  sigma 'z'


int n, m, i, j, f[sigma], f2[sigma], aux, sol, o[maxn][maxn], t[maxn][maxn];
char a[maxn][maxn], b[maxn][maxn], c;


void readf()
{
	freopen(_fin, "r", stdin);
	for (scanf("%d%d", &n, &m), i=1; i<=n; i++) scanf("%s", a[i]+1);
	for (i=1; i<=m; i++) {
		scanf("%s", b[i]+1);
		for (j=1; j<=m; j++) ++f[b[i][j]];
	}
}

void solve()
{
	for (i=1; i+m-1<=n; i++)
		for (j=1; j+m-1<=n; j++)
		{
			int ii, jj;
			memset(f2, 0, sizeof(f2));
			for (ii=i; ii<=i+m-1; ii++)
				for (jj=j; jj<=j+m-1; jj++)
					++f2[ a[ii][jj] ];
			
			for (c='a', ii=1; c<='z' && ii; c++)
				ii = ( f[c]==f2[c] );
			
			sol += ii;
		}
}

int main()
{
	readf();
	solve();
	
	fprintf(fopen(_fout,"w"), "%d\n", sol);
	
	return 0;
}