#include #include using namespace std; int main() { int n, m; // dimenzii na matricata cin >> n >> m; int mat[n][m]; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { cin >> mat[i][j]; // vnesuvanje na matirica } } int niza[n * m]; // moze da imame n * m dlapki, bidejki tolku elementi ima matricata int brojac = 0; // kolku elementi se navistina dlapki vo nizata for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { int najmal_broj = 2000000000; if(i - 1 >= 0) { // ova znaci deka imame sosed gore if(najmal_broj > mat[i - 1][j]) { najmal_broj = mat[i - 1][j]; } } if(i + 1 < n) { // ova znaci deka imame sosed dole if(najmal_broj > mat[i + 1][j]) { najmal_broj = mat[i + 1][j]; } } if(j - 1 >= 0) { // ova znaci deka imame sosed levo if(najmal_broj > mat[i][j - 1]) { najmal_broj = mat[i][j - 1]; } } if(j + 1 < m) { // ova znaci deka imame sosed desno if(najmal_broj > mat[i][j + 1]) { najmal_broj = mat[i][j + 1]; } } if(najmal_broj > mat[i][j]) { niza[brojac] = najmal_broj - mat[i][j]; brojac += 1; } } } sort(niza, niza + brojac); for(int i = brojac - 1; i >= 0; i--) { cout << niza[i] << " "; } return 0; }