Cod sursă (job #319119)

Utilizator avatar alexP01 Podaru Andrei alexP01 IP ascuns
Problemă Fotografie (clasele 9-10) Compilator cpp | 1,03 kb
Rundă Arhiva de probleme Status evaluat
Dată 27 oct. 2017 07:38:57 Scor 0
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("fotografie.in");
ofstream fout("fotografie.out");
int m,n,P,Q;
char A[1000][1000],B[1000][1000],*p,*q;
int main()
{
    int i,j,ok,pi,k;
    fin>>m>>n;
    fin.get();
    for(i=0;i<m;i++){
        fin.get(A[i],1000);
        fin.get();
        A[i][n]='\0';
    }
    fin>>P>>Q;
    fin.get();
    for(i=0;i<P;i++){
        fin.get(B[i],1000);
        fin.get();
        B[i][Q]='\0';
    }
         for(i=0;i<=m-P;i++){
         p=strstr(A[i],B[0]);
         while(p!=NULL){
         ok=1;
         k=0;
         pi=p-A[i];
         while(k<Q&&ok==1){
            for(j=0;j<P;j++)
                if(A[i+j][pi+k]!=B[j][k]){
                    ok=0;
                    break;
                }
            k++;
         }
         if(ok==1)
            fout<<i<<" "<<pi<<endl;
        if(pi+1<Q)
            p=strstr(p+1,B[0]);
        else
            p=NULL;

        }
    }
    fin.close();
    fout.close();
    return 0;
}