Cod sursa(job #1835202)
| Utilizator | Data | 26 decembrie 2016 15:37:55 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <cstdio>
using namespace std;
int n,v[6000005];
int sum[6000005],best;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
sum[i]=sum[i-1]+v[i];
}
int ans=-2000000000,mini=0,st,dr,j=0;
for(i=1;i<=n;i++)
{
best=sum[i]-mini;
if(ans<best)
{
ans=best;
dr=i;
st=j+1;
}
if(sum[i]<mini)
{
mini=sum[i];
j=i;
}
}
printf("%d %d %d\n",ans,st,dr);
return 0;
}
