Mai intai trebuie sa te autentifici.
Cod sursa(job #2257139)
| Utilizator | Data | 9 octombrie 2018 18:25:12 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.74 kb |
#include <bits/stdc++.h>
using namespace std;
int main()
{
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n;
long long currentBestSum = 0, currentBest = -1000000000;
///currentBestSum -> retine subsecventa de suma maxima care se termina la poz curenta
cin >> n;
for (int i = 1; i <= n; ++i) {
long long currentSum;
cin >> currentSum;
if (currentBestSum >= 0) { ///pana la poz i - 1 am o suma pozitiva
currentSum += currentBestSum;
}
currentBest = max (currentBest, currentSum);
currentBestSum = currentSum;
}
cout << currentBest;
return 0;
}
/// valori: 2 1 5 -10 5 6
/// CBS : 0 2 3 8 -2 5
/// CS : 2 3 8 -2 5 11
///CB = 11