Pagini recente »
Istoria paginii utilizator/mara_f
|
Istoria paginii utilizator/alganar
|
Monitorul de evaluare
|
Istoria paginii utilizator/buterezandrei
|
Cod sursă (job #751546)
Cod sursă (job
#751546)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fotografie.in");
ofstream fout("fotografie.out");
short a[1005][1005], b[1005][1005];
char s[1005];
short n, m, cnt, x, y;
pair<short, short> d[1005];
void Verif(short i, short j)
{
short ll, l;
short 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].first = aux - 1;
d[cnt].second = aux1 - 1;
}
bool cmp(pair<short, short> x, pair<short, short> y)
{
if(x.first != y.first) return x.first < y.first;
return x.second < y.second;
}
int main()
{
short i, j;
fin >> n >> m;
for(i=1; i<=n; i++)
{
fin >> (s + 1);
for(j=1; j<=m; j++)
a[i][j] = s[j] - 'a' + 1;
}
fin >> x >> y;
for(i=1; i<=x; i++)
{
fin >> (s + 1);
for(j=1; j<=y; j++)
b[i][j] = s[j] - 'a' + 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, cmp);
for(i=1;i<=cnt;i++)
fout << d[i].first << " " << d[i].second << "\n";
fin.close();
fout.close();
return 0;
}