Pagini recente »
Istoria paginii runda/examen_clasa_5
|
Monitorul de evaluare
|
OJI 2023 Clasa a VI-a - Antrenament - FFA v2.1
|
Atașamentele paginii concurs_6_10
|
Cod sursă (job #546772)
Cod sursă (job
#546772)
#include <fstream>
using namespace std;
ifstream f("fotografie.in");
ofstream g("fotografie.out");
int m, n, p, q, a[1001][1001], b[1001][1001];
int rv(char t) { return (int)t - 96; }
int verificare(int h, int g, int c, int d) {
int x = 0, y = 0;
for (int i = h; i <= c; i++) {
x++;
for (int j = g; j <= d; j++) {
y++;
if (a[i][j] != b[x][y]) return 0;
if (y == q) y = 0;
}
}
for (int i = h; i <= (c + h) / 2; i++)
for (int j = g; j <= (d + g) / 2; j++) a[i][j] = 0;
return 1;
}
int main() {
f >> m >> n;
f.get();
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
char t;
f >> t;
a[i][j] = rv(t);
}
f.get();
}
f >> p >> q;
f.get();
for (int i = 1; i <= p; i++) {
for (int j = 1; j <= q; j++) {
char t;
f >> t;
b[i][j] = rv(t);
}
f.get();
}
for (int i = 1; i <= m; i++)
for (int j = 1; j <= n; j++)
if (a[i][j] == b[1][1])
if (verificare(i, j, i + p - 1, j + q - 1) == 1)
g << i - 1 << " " << j - 1 << "\n";
return 0;
}