Cod sursă (job #751560)

Utilizator avatar Razvan23 Razvan Mosanu Razvan23 IP ascuns
Problemă Fotografie (clasele 9-10) Compilator cpp-32 | 1,23 kb
Rundă vs_11_12_dec Status evaluat
Dată 16 dec. 2023 11:48:02 Scor 40
#include <bits/stdc++.h>
using namespace std;

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

char a[1005][1005], b[1005][1005];
int n, m, cnt, x, y;

struct doi
{
    int p, p1;
    bool operator<(const doi e) const
    {
        if(p != e.p) return p < e.p;
        else return p1 < e.p1;
    }
} d[1005];

void Verif(int i, int j)
{
    int ll, l;
    int aux, aux1;
    aux = i;
    aux1 = j;
    for(ll=1; ll<=x; ll++)
    {
        for(l=1; l<=y; l++)
            if(a[i][j] == b[ll][l]) j++;
            else return;
        j = aux1;
        i++;
    }
    d[++cnt].p = aux - 1;
    d[cnt].p1 = aux1 - 1;
}

bool cmp(pair<int, int> x, pair<int, int> y)
{
    if(x.first != y.first) return x.first < y.first;
    return x.second < y.second;
}

int main()
{
    int i, j;
    fin >> n >> m;
    for(i=1; i<=n; i++)
        fin >> (a[i] + 1);
    fin >> x >> y;
    for(i=1; i<=x; i++)
        fin >> (b[i] + 1);
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            if(a[i][j] == b[1][1]) Verif(i, j);
    sort(d + 1, d + cnt + 1);
    for(i=1;i<=cnt;i++)
        fout << d[i].p << " " << d[i].p1 << "\n";
    fin.close();
    fout.close();
    return 0;
}