Cod sursă (job #759123)

Utilizator avatar TheEpicWipedCrea Chirita Vlad Alexandru TheEpicWipedCrea IP ascuns
Problemă Fotografie (clasele 9-10) Compilator cpp-32 | 1,16 kb
Rundă Arhiva de probleme Status evaluat
Dată 29 ian. 2024 10:04:36 Scor 30
#include <bits/stdc++.h>

using namespace std;
ifstream in  ("fotografie.in");
ofstream out("fotografie.out");

#define maxN 1000

char v[maxN+1][maxN+1];
char pat[maxN+1][maxN+1];


int n,m;
int x,y;
bool same(deque <char> rn[]){
    for(int i=0;i<x;i++){
        for(int j=0;j<y;j++){
            if(rn[i][j]!=pat[i][j]){
                return false;
            }
        }
    }
    return true;
}

int main(){
    in>>n>>m;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            in>>v[i][j];
        }
    }

    in>>x>>y;

    for(int i=0;i<x;i++){
        for(int j=0;j<y;j++){
            in>>pat[i][j];
        }
    }

    for(int i=0;i<n-x+1;i++){

        deque <char> rn[maxN+1];
        for(int ix=0;ix<x;ix++){
            for(int jy=0;jy<y;jy++){
                rn[ix].push_back(v[i+ix][jy]);
            }
        }
        

        for(int j=0;j<m-y+1;j++){
            if(same(rn)==true){
                out<<i<<" "<<j<<'\n';
            }

            for(int k=0;k<x;k++){
                rn[k].pop_front();
                rn[k].push_back(v[i+k][j+y]);
            }
        }

    }
}