Pagini recente » Cod sursa (job #3226868) | Cod sursa (job #1387273) | Cod sursa (job #1375391) | Cod sursa (job #2210384) | Cod sursa (job #518565)
Cod sursa(job #518565)
#include <stdio.h>
#define sigma 25
int n,m,i,j,k,s,total,f[26],a[1001][1024];
char ch[1001][1024],g[1024];
bool ok[1001][1024];\
int main()
{
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
scanf("%d %d\n",&m,&n);
for(i=0;i<m;++i)
scanf("%s",ch[i]);
for(i=0;i<n;++i)
{
scanf("%s",g);
for (j=0;j<n;++j)
f[g[j]-'a']++;
}
for (k=0;k<sigma;++k)
{
for (i=1;i<=m;++i)
for (j=1;j<=m;++j)
{
a[i][j]=a[i][j-1]-a[i-1][j-1]+a[i-1][j];
if (ch[i-1][j-1]=='a'+k)
a[i][j]++;
}
for (i=n;i<=m;++i)
for (j=n;j<=m;++j)
if (!ok[i][j])
{
s=a[i][j]-a[i][j-n]-a[i-n][j]+a[i-n][j-n];
if (s!=f[k])
ok[i][j]=1;
}
}
total=0;
for (i=n;i<=m;++i)
for (j=n;j<=m;++j)
if (!ok[i][j])
total++;
printf("%d\n",total);
return 0;
}