1299. Stefan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#include <iostream> using namespace std; //funkcja obliczająca maksymalny podciąg w danym ciągu //funkcja pobiera wskaźnik na tablice i ilość elementów long long int maximumSubArray(long long int *arr,int MAX) { long long int currentSum=0, maxSum=0;//zmienne pomocnicze:suma tymczasowa i suma maksymalna for(int i=0;i<MAX;i++) { currentSum+=arr[i];//dodajemy kolejne elementy ciągu if(currentSum > maxSum)// jeśli suma tymczasowa jest większa niż maksymalna { maxSum = currentSum;//przypisujemy sumie maksymalnej wartość sumy bieżącej }else if(currentSum < 0)// jeśli jest mniejsza od 0 { currentSum= 0;//zerujemy sumę tymczasową } } return maxSum;//zwróć wartość maksymalną } int main() { int n; cin >> n;//ilość koncertów long long int tab[n];//tablica zysków for(int i = 0 ; i < n ; i++) { cin >> tab[i];//wprowadzamy kolejne dane } cout << maximumSubArray(tab,n) << endl;//wyświetlamy wynik funkcji return 0; } |