👤

Zadanie 13 – Najlepsze sumy

Najlepszą sumą ciągu liczb a1, a2, …, an nazywamy największą wartość wśród sum złożonych z sąsiednich elementów tego ciągu. Na przykład dla ciągu: 1, 2, -5, 7 mamy następujące sumy:
1
1+2 = 3
1+2+(-5) = -2
1+2+(-5)+7 = 5
2
2+(-5) = -3
2+(-5)+7 = 4
-5
-5+7 = 2
7
Zatem najlepszą sumą jest 7 (zwróć uwagę, że jeden element też uznajemy za sumę). Zaproponuj algorytm wyznaczania najlepszej sumy dla dowolnego ciągu liczb całkowitych. Na jego podstawie napisz program do obliczenia najlepszych sum ciągów liczb.
Wejście
W jednej linii znajduje się ciąg n - liczb całkowitych. Liczb jest nie więcej niż 500000, ich wartość mieści się w przedziale [-1000, 1000].
Wyjście
Największa suma złożona z kolejnych elementów ciągu.
Przykład:
Dla danych wejściowych:

4
1 2 -5 7
Dla danych wejściowych:

7
w c++


Odpowiedź :

Odpowiedź:

#include <iostream>

#include <limits>

#include <cmath>

int main() {

   int maxSum = INT_MIN;

   int sum = 0;

   int n, a;

   std::cin >> n;

   for(int i = 0; i < n; i++){

       std::cin >> a;

       for(int j = i; j <n; j++) {

           sum += a;

           maxSum = std::max(maxSum, sum);

       }

       sum = 0;

   }

   std::cout << maxSum;

   return 0;

}

Wyjaśnienie:

Wydaje mi się, że dobrze, ale jest tylko jeden przypadek testowy