Pagini recente » Cod sursa (job #385036) | Cod sursa (job #1828935) | Cod sursa (job #2748235) | Cod sursa (job #113778) | Cod sursa (job #2343818)
#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[1002][1002],b[1002][1002];
int main()
{
FILE *fin = fopen("matrix.in","r");
FILE *fout = fopen("matrix.out","w");
int i,j,y,x,z,w;
char C;
fscanf(fin,"%d%d",&n,&m);
for(i=1;i<=n;i++)
{
getc(fin);
for(j=1;j<=n;j++)
{
fscanf(fin,"%c",&C);
y=C-'a';
a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+y;
b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+y*y;
}
}
z=w=0;
for(i=1;i<=m;i++)
{
getc(fin);
for(j=1;j<=m;j++)
{
fscanf(fin,"%c",&C);
y=C-'a';
z+=y;
w+=y*y;
}
}
int sol=0;
for(i=m;i<=n;i++)
for(j=m;j<=n;j++)
{
x=(a[i][j]-a[i-m][j]-a[i][j-m]+a[i-m][j-m]);
y=(b[i][j]-b[i-m][j]-b[i][j-m]+b[i-m][j-m]);
if(x==z && y==w)sol++;
}
fprintf(fout,"%d",sol);
fclose(fin);
fclose(fout);
return 0;
}