Pagini recente » Cod sursa (job #2676225) | Cod sursa (job #835102) | Cod sursa (job #2086926) | Cod sursa (job #1655441) | Cod sursa (job #2794636)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int s[1005][1005], sp[1005][1005], n, m;
int A, B;
int main()
{
int i, j, c, x, y, cnt = 0;
char w[1005];
fin >> n >> m;
for (i = 1; i <= n; i++)
{
fin >> (w + 1);
for (j = 1; j <= n; j++)
{
c = (w[j] - 'a' + 1);
s[i][j] = c + s[i][j - 1] + s[i - 1][j] - s[i - 1][j - 1];
sp[i][j] = c * c + sp[i][j - 1] + sp[i - 1][j] - sp[i - 1][j - 1];
}
}
for (i = 1; i <= m; i++)
{
fin >> (w + 1);
for (j = 1; j <= m; j++)
{
c = (w[j] - 'a' + 1);
A += c;
B += (c * c);
}
}
for (i = m; i <= n; i++)
for (j = m; j <= n; j++)
{
x = s[i][j] - s[i - m][j] - s[i][j - m] + s[i - m][j - m];
y = sp[i][j] - sp[i - m][j] - sp[i][j - m] + sp[i - m][j - m];
if (x == A && y == B) cnt++;
}
fout << cnt << "\n";
fout.close();
fin.close();
return 0;
}