Răspuns :
#include <iostream>
using namespace std;
int distanta_MH(int ax, int ay, int bx, int by) {
return abs(ax - bx) + abs(ay - by);
}
int main() {
int n, m;
int lin_focar, col_focar;
//Citeste dimensiuni tabla
cin >> n >> m;
//Citeste locatie focar
cin >> lin_focar >> col_focar;
//Afisare si generare tabela
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cout << distanta_MH(i, j, lin_focar, col_focar) << " ";
}
cout << endl;
}
}
► Explicatie :
Generam si afisam o matrice in care valoarea pentru fiecare element este distanta Manhattan dintre locatia curenta si locatia focarului.
Distanta MH intre doua puncte este suma dintre diferenta dintre abscisele punctelor si diferenta dintre ordonata punctelor. Se foloseste in foarte multe probleme de info in care deplasarea in matrice se face doar stanga, dreapta, jos, sus.
Te invit sa cauti mai multe informatii pe internet despre acest topic.