Cod sursa(job #2675838)
Utilizator | Mindrila Alex Mindralex | Data | 22 noiembrie 2020 17:28:04 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.63 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 = 0, st, dr, summax = INT_MIN;
fin >> n;
for (i = 1; i <= n; i++)
{
fin >> v[i];
s[i] = max(s[i-1]+v[i], v[i]);
if (s[i] != s[i-1]+v[i])
{
j = i;
}
if (s[i] > summax)
{
summax = s[i];
st = j;
dr = i;
}
}
fout << summax << ' ' << st << ' ' << dr;
return 0;
}