Cod sursa(job #398434)
| Utilizator | Data | 18 februarie 2010 18:03:00 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <stdio.h>
long a;
long n,i,best,kezd,veg;
long r[6000010],k[6000010];
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%ld\n",&n);
best=0;
r[0]=0;
k[0]=0;
for(i=1;i<=n;++i)
{
scanf("%ld ",&a);
if(r[i-1]+a>a) {r[i]=r[i-1]+a; k[i]=k[i-1]; }
else {r[i]=a; k[i]=i; }
if(r[i]>best) {best=r[i]; kezd=k[i]; veg=i; }
}
printf("%ld %ld %ld",best,kezd,veg);
return 0;
}
