Pagini recente » Cod sursa (job #2952437) | Cod sursa (job #2812453) | Cod sursa (job #3169615) | Cod sursa (job #875185) | Cod sursa (job #464216)
Cod sursa(job #464216)
#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;}