Pagini recente » Cod sursa (job #3164461) | Cod sursa (job #1658916) | Cod sursa (job #2043508) | Cod sursa (job #1571886) | Cod sursa (job #1802415)
#include <cstdio>
using namespace std;
int a[1001][1001];
int ok[1001][1001];
int f[30];
int b[1001][1001];
int main()
{
FILE *fin=fopen ("matrix.in","r");
FILE *fout=fopen ("matrix.out","w");
int n,m,i,j,sol,k,ii,jj;
char c;
fscanf (fin,"%d%d\n",&n,&m);
for (i=1;i<=n;i++){
for (j=1;j<=n;j++){
c=fgetc (fin);
a[i][j]=c-'a';
}
fgetc (fin);
}
for (i=1;i<=m;i++){
for (j=1;j<=m;j++){
c=fgetc (fin);
f[c-'a']++;
}
fgetc (fin);
}
for (k='a';k<='z';k++){
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+(a[i][j]==k-'a');
for (i=1;i<=n;i++)
for (j=1;j<=n;j++){
// pp ca i,j e coltul stanga-sus
ii=i+m-1;
jj=j+m-1;
if (ii>n || jj>n || b[ii][jj]-b[i-1][jj]-b[ii][j-1]+b[i-1][j-1]!=f[k-'a'])
ok[i][j]=1;
}
}
sol=0;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
sol=sol+1-ok[i][j];
fprintf (fout,"%d",sol);
return 0;
}