Pagini recente » Cod sursa (job #186165) | Cod sursa (job #616202) | Cod sursa (job #2750990) | Cod sursa (job #2461777) | Cod sursa (job #2115724)
#include<fstream>
using namespace std;
ifstream in ("matrix.in");
ofstream out ("matrix.out");
int sum[1001][1001],n,m,x,sol,hz[27];
char mat[1001][1001],y;
bool oke[1001][1001];
int main (void) {
in >> m >> n;
for (int i = 1; i <= m; i ++) {
for (int j = 1; j <= m; j ++) {
in >> mat[i][j];
oke[i][j] = 1;
}
}
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= n; j ++) {
in >> y;
hz[y-'a'+1] ++;
}
}
for (int k = 1; k <= 26; k ++) {
for (int i = 1; i <= m; i ++) {
for (int j = 1; j <= m; j ++) {
sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1];
if (mat[i][j] == k+'a'-1) {
sum[i][j] ++;
}
x = sum[i][j] -sum[i-n][j] - sum[i][j-n] + sum[i-n][j-n];
if (x != hz[k]) {
oke[i][j] = 0;
}
}
}
}
for (int i = 1; i <= m; i ++) {
for (int j = 1; j <= m; j ++) {
sol += oke[i][j];
}
}
out << sol;
return 0;
}