Pentru traversarea unui râu se folosește un pod, alcătuit din n*m sectoare, dispuse pe n linii și m coloane. Datorită vechimii, fiecare sector al podului are un factor de siguranță cunoscut, exprimat printr-un număr natural, care scade cu o unitate de fiecare dată când o persoană pășește pe acel sector. Sectoarele cu factorul de siguranță nul nu sunt accesibile.
Traversarea podului constă în parcurgerea unei anumite coloane de la prima linie spre ultima. Nu este posibilă, din motive de siguranță, schimbarea coloanei în timpul traversării.
Administratorul podului, Gigel, vă cere să determinați numărul de persoane care vor putea traversa podul până la degradarea lui totală, pentru a argumenta cererea de finanțare pentru refacerea acestuia.
Răspunsuri la întrebare
Răspuns de
1
/*
De fiecare data cand un om parcurge o coloana, se va scadea cu o unitate fiecare sector al acelei coloane. Cand unul dintre sectoare devine 0, coloana nu va mai putea fi parcursa, asadar numarul de perosoane care pot parcurge o coloana este egal cu minimul factorilor de siguranta de pe acea coloana.
Numarul total de persoane va fi suma minimurilor de pe coloane.
*/
#include <iostream>
using namespace std;
int main()
{
int n, m, a[100][100], persoane = 0;
cin >> n >> m;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> a[i][j];
//parcurgerea coloanelor
for (int j = 0; j < n; j++)
{
int factor_minim = a[0][j];
for (int i = 1; i < n; i++)
if (a[i][j] < factor_minim)
factor_minim = a[i][j];
persoane += factor_minim;
}
cout << persoane;
}
De fiecare data cand un om parcurge o coloana, se va scadea cu o unitate fiecare sector al acelei coloane. Cand unul dintre sectoare devine 0, coloana nu va mai putea fi parcursa, asadar numarul de perosoane care pot parcurge o coloana este egal cu minimul factorilor de siguranta de pe acea coloana.
Numarul total de persoane va fi suma minimurilor de pe coloane.
*/
#include <iostream>
using namespace std;
int main()
{
int n, m, a[100][100], persoane = 0;
cin >> n >> m;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> a[i][j];
//parcurgerea coloanelor
for (int j = 0; j < n; j++)
{
int factor_minim = a[0][j];
for (int i = 1; i < n; i++)
if (a[i][j] < factor_minim)
factor_minim = a[i][j];
persoane += factor_minim;
}
cout << persoane;
}
Alte întrebări interesante