Pagini recente » Cod sursa (job #1463351) | Cod sursa (job #2837386) | Cod sursa (job #1104568) | Cod sursa (job #2620133) | Cod sursa (job #2549830)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int n, m;
int f[1005], r[1005][1005], d[1005][1005];
char c[1005][1005],a[1005][1005];
int sol;
int x;
int main () {
fin >> n >> m;
for (int i=1;i<=n;++i)
for (int j=1;j<=m;++j)
fin >> a[i][j];
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j) {
fin >> c[i][j];
f[ c[i][j] ]++;
}
for (char k = 'a';k<='z';++k){
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
d[i][j] = d[i][j-1] + d[i-1][j] - d[i-1][j-1] + (k == c[i][j]);
for (int i=m;i<=n;++i)
for (int j=m;j<=n;++j)
if (d[i][j] - d[i][j-m] - d[i-m][j] + d[i-m][j-m] == f[k]) r[i][j] = 1;
}
for (int i=m;i<=n;++i)
for (int j=m;j<=n;++j)
sol+=r[i][j];
fout << sol;
}