Cod sursa(job #3291523)

Utilizator florinul1Iuhas Florin florinul1 Data 4 aprilie 2025 23:37:07
Problema Matrix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
using namespace std;
char c, a[1010][1010];
int d[1010][1010], sol, i, j, n, m, ok[1010][1010], f[130];
int main() {
	ifstream fin("matrix.in");
	ofstream fout("matrix.out");
	fin >> n >> m;
	for (i = 1; i <= n; i++)
		for (j = 1; j <= n; j++)
			fin >> a[i][j];
	for (i = 1; i <= m; i++)
		for (j = 1; j <= m; j++) {
			fin >> c;
			f[c] ++;
		}
	for (i = m; i <= n; i++)
		for (j = m; j <= n; j++)
			ok[i][j] = 1;
	for (c = 'a'; c <= 'z'; c++) {
		for (i = 1; i <= n; i++)
			for (j = 1; j <= n; j++)
				d[i][j] = (a[i][j] == c)
				+ d[i - 1][j] + d[i][j - 1] - d[i - 1][j - 1];
		for (i = m; i <= n; i++)
			for (j = m; j <= n; j++)
				if (d[i][j] - d[i - m][j] - d[i][j - m] + d[i - m][j - m] !=
					f[c])
					ok[i][j] = 0;
	}
	for (i = m; i <= n; i++)
		for (j = m; j <= n; j++)
			sol += ok[i][j];
	fout << sol;
	return 0;
}