Cod sursa(job #2666832)
Utilizator | Ioan Anghel Ioan_Anghel | Data | 2 noiembrie 2020 15:46:36 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
const int INF = 1 << 30;
int main()
{
int n; in >> n;
int sum, max_sum;
sum = max_sum = -INF;
int start, start_max, finish;
for(int i = 0; i < n; i++)
{
int a; in >> a;
if(sum < 0){
sum = 0;
start = i + 1;
}
sum += a;
if(max_sum < sum){
max_sum = sum;
finish = i + 1;
start_max = start;
}
}
out << max_sum << " " << start_max << " " << finish;
return 0;
}