Răspuns :
#include <iostream>
using namespace std;
int a[200][200];
int b[200][200];
int main() {
int n, m;
cin >> n >> m;
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
cin >> a[i][j];
for(int i = 0 ; i < n; i++)
b[i][0] = a[i][0];
for(int j = 1; j < m; j++) {
b[0][j] = a[0][j] + min(b[0][j - 1], b[1][j - 1]);
for (int i = 1; i + 1 < n; i++)
b[i][j] = a[i][j] + min(min(b[i - 1][j - 1], b[i][j - 1]), b[i + 1][j - 1]);
b[n - 1][j] = a[n - 1][j] + min(b[n - 2][j - 1], b[n - 1][j - 1]);
}
int sol = b[0][m - 1];
for(int i = 1; i < n; i++)
sol = min(sol, b[i][m - 1]);
cout << sol;
return 0;
}
using namespace std;
int a[200][200];
int b[200][200];
int main() {
int n, m;
cin >> n >> m;
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
cin >> a[i][j];
for(int i = 0 ; i < n; i++)
b[i][0] = a[i][0];
for(int j = 1; j < m; j++) {
b[0][j] = a[0][j] + min(b[0][j - 1], b[1][j - 1]);
for (int i = 1; i + 1 < n; i++)
b[i][j] = a[i][j] + min(min(b[i - 1][j - 1], b[i][j - 1]), b[i + 1][j - 1]);
b[n - 1][j] = a[n - 1][j] + min(b[n - 2][j - 1], b[n - 1][j - 1]);
}
int sol = b[0][m - 1];
for(int i = 1; i < n; i++)
sol = min(sol, b[i][m - 1]);
cout << sol;
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!