Pagini recente » Cod sursa (job #3341472) | Cod sursa (job #410768) | Cod sursa (job #3352613) | Cod sursa (job #3343431) | Cod sursa (job #3342413)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main() {
int n;
fin >> n;
long long max_sum = -2000000000; // Valoare foarte mica
long long current_sum = 0;
int start = 0, end = 0, current_start = 1;
for (int i = 1; i <= n; i++) {
int x;
fin >> x;
// Pasul 1: Decidem daca adunam x la suma existenta sau incepem de la zero
if (current_sum < 0) {
current_sum = x;
current_start = i;
} else {
current_sum += x;
}
// Pasul 2: Verificam daca am doborat recordul
if (current_sum > max_sum) {
max_sum = current_sum;
start = current_start;
end = i;
}
}
fout << max_sum << " " << start << " " << end << endl;
return 0;
}