👤

Se consideră o pădure ce conține n•m copaci aranjați pe n linii și m coloane în care s-a produs un incendiu. Pădurarii cunosc coordonatele x și y ale copacului de la care a izbucnit focul și modalitatea prin care acesta se extinde. Astfel, dacă un copac se aprinde într-o anumită zi, în ziua următoare se vor aprind copacii vecini cu acesta pe linie sau coloană care nu sunt încă afectați de incendiu.
Cerința
Știind x și y, coordonatele inițiale ale focului și n și m, dimensiunile pădurii, ajutați pădurarii să determine numărul minim de zile după care întreaga pădure va fi afectată.
Date de intrare
Programul citește de la tastatură numerele x y n m, cu semnificația de mai sus.
Date de ieșire
Programul va afișa pe ecran numărul Z, reprezentând numărul de zile după care va fi afectată întreaga pădure.
Restricții și precizări
1 ≤ x ≤ n ≤ 1.000.000.000
1 ≤ y ≤ m ≤ 1.000.000.000


Răspuns :

#include <iostream>

using namespace std;

int abs(int x){return x < 0 ? -x : x;}

int distanta_manhattan(int x1, int y1, int x2, int y2){

return abs(x1-x2) + abs(y1-y2);

}

int main(){

int n,m,x,y;

       cin >> x >> y >> n >> m;

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

            for(int j = 1; j <= m; j++)

                       cout << (distanta_manhattan(x,y,i,j)+1) << ' ';

               cout << '\n';

       }

       return 0;

}