Cod sursa(job #2675809)
Utilizator | Mindrila Alex Mindralex | Data | 22 noiembrie 2020 16:30:15 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
const int valMax = 6e6;
int v[valMax+1], s[valMax+1];
int main()
{
int n, i, j = 1, summax = INT_MIN, st, dr;
fin >> n;
for (i = 1; i <= n; i++)
{
fin >> v[i];
s[i] = s[i-1] + v[i];
if (s[i] - s[j]> summax)
{
summax = s[i] - s[j], st = j+1, dr = i;
}
if (s[i] < s[j])
j = i;
}
fout << summax << ' ' << st << ' ' << dr;
}