Cod sursa(job #2257559)
Utilizator | Data | 10 octombrie 2018 10:33:44 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("ssm.in ");
ofstream out("ssm.out");
int N, S[6000010], bestsum = -10000000, Min = 0, x , r, l, lft;
int main()
{
in >> N;
for(int i = 1;i <= N;i++)
{
in >> x;
S[i] = x + S[i - 1];
}
for(int i = 1;i <= N;i++)
{
if(bestsum < S[i] - Min)
{
lft = l + 1;
r = i;
bestsum = S[i] - Min;
}
if(Min > S[i])
{
Min = S[i];
l = i;
}
}
out << bestsum << " " << lft << " " << r;
return 0;
}