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.0001 ≤ y ≤ m ≤ 1.000.000.000
Exemplu 1:
Intrare
2 2 4 5
Ieșire
6
Explicație
În funcție de numărul de zile, fiecare zonă va fi distrusă în numărul de zile corespunzător figurii de mai jos:
3 2 3 4 5 2 1 2 3 4 3 2 3 4 5 4 3 4 5 6
Exemplu 2:
Intrare
3 3 9 9
Ieșire
13
Explicație
În funcție de numărul de zile, fiecare zonă va fi distrusă în numărul de zile corespunzător figurii de mai jos:
5 4 3 4 5 6 7 8 9 4 3 2 3 4 5 6 7 8 3 2 1 2 3 4 5 6 7 4 3 2 3 4 5 6 7 8 5 4 3 4 5 6 7 8 9 6 5 4 5 6 7 8 9 10 7 6 5 6 7 8 9 10 11 8 7 6 7 8 9 10 11 12 9 8 7 8 9 10 11 12 13
#include <bits/stdc++.h>
using namespace std;
int main()
{
int x , y , n , m;
cin >> x >> y >> n >> m;
int lc1 = x + y - 2;
int lc2 = x - 1 + m - y;
int lc3 = y - 1 + n - x;
int lc4 = m - y + n - x;
cout << max(max(max(lc1 , lc2) , lc3) , lc4) + 1;
return 0;
}