Cod sursa(job #1725236)
| Utilizator | Data | 5 iulie 2016 11:38:06 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <cstdio>
using namespace std;
int v[6000001],n,i,s,d,dr,st,smax,st1;
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
scanf("%d", &n);
for(i=1;i<=n;i++)
scanf("%d", &v[i]);
s=v[1];
smax=v[1];
st=1;
d=1;
for(i=2;i<=n;i++)
{
if(s+v[i]>=v[i])
s+=v[i];
else
{
s=v[i];
st=i;
}
if(s>smax)
{
smax=s;
st1=st;
dr=i;
}
}
printf("%d %d %d", smax,st1, dr);
return 0;
}
