Cod sursă (job #469206)

Utilizator avatar MaddoxX Mironica Vasile MaddoxX IP ascuns
Problemă Fotografie (clasele 9-10) Compilator cpp | 0,88 kb
Rundă Arhiva de probleme Status evaluat
Dată 11 apr. 2019 19:26:44 Scor 40
#include <fstream>
using namespace std;

ifstream cin("fotografie.in");
ofstream cout("fotografie.out");

int n, m, p, q, sum[1010][1010], x;
char a[1010][1010], b[1010][1010];

void check(int y, int x) {
	for(int i = 1; i <= p; i++)
		for(int j = 1; j <= q; j++)
			if(a[i + y - 1][j + x - 1] != b[i][j])
				return;
	cout << y - 1 << ' ' << x - 1 << '\n';
}

int main() {
	cin >> n >> m;
	for(int i = 1; i <= n; i++)
		for(int j = 1; j <= m; j++)
			cin >> a[i][j],
			sum[i][j] = (a[i][j] - 'a') + sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1];
	cin >> p >> q;
	for(int i = 1; i <= p; i++)
		for(int j = 1; j <= q; j++)
			cin >> b[i][j],
			x += b[i][j];
	x -= p * q * 'a';
	
	for(int i = p; i <= n; i++)
		for(int j = q; j <= m; j++)
			if(sum[i][j] + sum[i - p][j - q] - sum[i][j - q] - sum[i - p][j] == x)
				check(i - p + 1, j - q + 1);
	return 0;
}