Gigel a găsit o matrice cu n linii și m coloane și elemente numere naturale. El își propune să determine, pentru fiecare linie, cea mai mică valoare care se poate obține adunând elementele de pe linie, cu excepția unuia. Do that with a[100][100] and without #include <vector> #include <algorithm>
Pentru a rezolva această problemă, putem folosi o abordare iterativă. În fiecare linie a matricei, vom găsi valoarea maximă a elementelor și apoi vom calcula suma tuturor elementelor, cu excepția celei cu valoarea maximă. Valoarea minimă care se poate obține adunând elementele de pe linie, cu excepția unuia, va fi diferența dintre suma tuturor elementelor și valoarea maximă. Aici este codul C++ care rezolvă problema: ```cpp #include <iostream> #include <climits> int main() { int n, m; std::cout << "Introduceti numarul de linii (n): "; std::cin >> n; std::cout << "Introduceti numarul de coloane (m): "; std::cin >> m; int** a = new int*[n]; for (int i = 0; i < n; i++) { a[i] = new int[m]; } // Citirea matricei for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { std::cout << "Introduceti elementul [" << i << "][" << j << "]: "; std::cin >> a[i][j]; } } // Calcularea valorilor minime for (int i = 0; i < n; i++) { int maxVal = INT_MIN; for (int j = 0; j < m; j++) { maxVal = std::max(maxVal, a[i][j]); } int suma = 0; for (int j = 0; j < m; j++) { suma += a[i][j]; } int minVal = suma - maxVal; for (int j = 0; j < m; j++) { if (a[i][j] != maxVal) { minVal = std::min(minVal, suma - a[i][j]); } } std::cout << "Valoarea minima pentru linia " << i + 1 << " este: " << minVal << std::endl; } // Dezinicializarea matricei for (int i = 0; i < n; i++) { delete[] a[i]; } delete[] a; return 0; } ``` Acest cod citeste o matrice cu n linii și m coloane, calculează valoarea minimă care se poate obține adunând elementele de pe fiecare linie, cu excepția unuia, și afișează rezultatele.