Cod sursă (job #782849)

Utilizator avatar marinaluc marina luca marinaluc IP ascuns
Problemă Fotografie (clasele 9-10) Compilator cpp-32 | 1,22 kb
Rundă Arhiva de probleme Status evaluat
Dată 21 iul. 2024 12:38:25 Scor 40
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

int main() {
    ifstream fin("fotografie.in");
    ofstream fout("fotografie.out");

    int M, N, P, Q;
    fin >> M >> N;

    vector<vector<char>> A(M, vector<char>(N));
    for (int i = 0; i < M; ++i) {
        for (int j = 0; j < N; ++j) {
            fin >> A[i][j];
        }
    }

    fin >> P >> Q;

    vector<vector<char>> B(P, vector<char>(Q));
    for (int i = 0; i < P; ++i) {
        for (int j = 0; j < Q; ++j) {
            fin >> B[i][j];
        }
    }

    vector<pair<int, int>> results;

    for (int dl = 0; dl <= M - P; ++dl) {
        for (int dc = 0; dc <= N - Q; ++dc) {
            bool match = true;
            for (int i = 0; i < P && match; ++i) {
                for (int j = 0; j < Q; ++j) {
                    if (A[dl + i][dc + j] != B[i][j]) {
                        match = false;
                        break;
                    }
                }
            }
            if (match) {
                results.emplace_back(dl, dc);
            }
        }
    }

    for (const auto& result : results) {
        fout << result.first << " " << result.second << endl;
    }

    fin.close();
    fout.close();

    return 0;
}