Pagini recente » Cod sursa (job #2309995) | Cod sursa (job #1505524) | Cod sursa (job #2792802) | Cod sursa (job #1725654) | Cod sursa (job #249282)
Cod sursa(job #249282)
#include <stdio.h>
#include <algorithm>
#define MAX 1024
using namespace std;
int n, m, rez;
short matMat[MAX][MAX][26];
int fMatrix[26];
char matInit[MAX][MAX];
int main()
{
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
scanf("%d %d\n", &m, &n);
for (int i = 1; i <= m; i++)
{
int vctLin[26];
memset(vctLin, 0, sizeof(vctLin));
for (int j = 1; j <= m; j++)
{
scanf("%c", &matInit[i][j]);
vctLin[matInit[i][j] - 'a']++;
if (j > n)
vctLin[matInit[i][j - n] - 'a']--;
memcpy(matMat[i][j], matMat[i - 1][j], sizeof(matMat[i][j]));
for (int cf = 0; cf < 26; cf++)
{
matMat[i][j][cf] += vctLin[cf];
if (i > n)
matMat[i][j][cf] -= matMat[i - n][j][cf];
}
}
scanf("\n");
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
char elMatrix;
scanf("%c", &elMatrix);
fMatrix[elMatrix - 'a']++;
}
scanf("\n");
}
for (int i = 1; i <= m; i++)
for (int j = 1; j <= m; j++)
if (!memcmp(fMatrix, matMat[i][j], sizeof(fMatrix)))
rez++;
printf("%d\n", rez);
fclose(stdin);
fclose(stdout);
return 0;
}