Pagini recente » Cod sursa (job #2746315) | Cod sursa (job #474631) | Cod sursa (job #1575592) | Cod sursa (job #447735) | Cod sursa (job #317110)
Cod sursa(job #317110)
#include<stdio.h>
#include<string.h>
long n,m,i,j,t[1050][1050],f['z'+50],l;
char co[1050][1050],vv[1050],lit;
bool x[1050][1050];
int main()
{
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(i=1;i<=n;++i)
scanf("\n%s",co[i]);
for(i=1;i<=m;++i)
{scanf("\n%s",vv);
for(j=1;j<=m;++j)++f[vv[j-1]];}
for(lit='a';lit<='z';++lit)
{for(i=1;i<=n;++i)memset(t[i],0,sizeof(t[i]));
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
{t[i][j]=t[i-1][j]+t[i][j-1]-t[i-1][j-1]+(co[i][j-1]==lit);
if(x[i][j]==0&&i>=m&&j>=m)if(t[i][j]-t[i-m][j]-t[i][j-m]+t[i-m][j-m]!=f[lit])x[i][j]=1;}}
for(i=m;i<=n;++i)
for(j=m;j<=n;++j)
if(!x[i][j])++l;
printf("%ld\n",l);
return 0;
}