Cod sursa(job #385452)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 22 ianuarie 2010 18:58:18
Problema Matrix Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio>
#include <cstring>

#define file_in "matrix.in"
#define file_out "matrix.out"

int n,m,i,j,sol,k,l,ii,jj;
int f[27];
char s[1000];
char frecv[27];
char a[1010][1010];

int main()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d\n", &n, &m);
	for (i=1;i<=n;++i)
	{
		gets(s);
		for (j=0;j<n;++j)
			 a[i][j+1]=s[j];
	}
	for (i=0;i<m;++i)
	{
		gets(s);
		for (j=0;j<m;++j)
			 frecv[s[j]-'a']++;
	}
	
	/*for (i=0;i<n;++i)
	{
		for (j=0;j<n;++j)
			 printf("%c ",a[i][j]);
		printf("\n");
	}*/
	sol=0;
	
	for (i=1;i<=n;++i)
		 for (j=1;j<=n;++j)
		 {
			 memset(f,0,sizeof(f));
	         for (k=i;k<=i+m-1;++k)
	              for (l=j;l<=j+m-1;++l)
					   f[a[k][l]-'a']++;
			 int ok=0;
				  for (k=0;k<26 && !ok;++k)
              			if (f[k]!=frecv[k]) ok=1;
			if (!ok) sol++;
		 }						
					   
	printf("%d\n", sol);
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}