Cod sursa(job #2419980)
Utilizator | Alexandru Oloieri alexoloieri | Data | 9 mai 2019 23:33:38 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.84 kb |
#include <bits/stdc++.h>
using namespace std;
int n, x, s, ln, inc;
int ans = -2100000000, incans, lnans;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);
s = 0;
inc = 1, ln = 0;
for (int i=1;i<=n;++i)
{
scanf("%d",&x);
if (x > ans)
{
ans = x;
lnans = 1;
incans = i;
}
s+=x;
if (s < 0)
{
ln = 0;
inc = i+1;
s = 0;
}
else
{
++ln;
if (s > ans)
{
ans = s;
incans = inc;
lnans = ln;
}
}
}
printf("%d %d %d\n",ans,incans,incans+lnans-1);
fclose(stdin);
fclose(stdout);
return 0;
}