Cod sursa(job #464216)

Utilizator zloteanu.adrianzloteanu adrian nichita zloteanu.adrian Data 19 iunie 2010 12:42:20
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<cstdio>
#include<cstring>
int n,m,nr[20],a[1001][1001],i,j,k,NR;
char gd[1001][1001],A[1001][1001],B[1001];
int main()
{freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
scanf("%d %d ",&n,&m);
for(i=1;i<=n;i++)
  gets(A[i]);
for(i=1;i<=m;i++)
  {gets(B);
  for(j=0;j<m;j++)
    nr[B[j]-'a']++;}
memset(gd,1,sizeof(gd));
for(k=0;k<26;k++)
  {char c=k+'a';
  for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
	  {a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1];
	  if(A[i][j-1]==c)
       a[i][j]++;
	  if(i>=m&&j>=m&&(a[i][j]-a[i-m][j]-a[i][j-m]+a[i-m][j-m])!=nr[k])
       gd[i][j]=0;}}
for(i=m;i<=n;i++)
  for(j=m;j<=n;j++)
    if(gd[i][j])
     NR++;
printf("%d\n",NR);
fclose(stdout);
return 0;}