Cod sursa(job #517049)
| Utilizator | Data | 27 decembrie 2010 17:07:58 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<stdio.h>
int main()
{long n,i,j,max,k,s,b,t,j1;
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%ld\n",&n);
j=k=j1=1;
max=-1000;
s=b=0;
for(i=1;i<=n;i++)
{scanf("%ld",&t);
if(b>s)
{b=s;
j1=i;}
s+=t;
if(max<s-b)
{max=s-b;
k=i;}
if(s>0&&j1<=k&&b<0)
j=j1;}
if(max<0)
j=k;
printf("%ld %ld %ld\n",max,j,k);
fclose(stdin);
fclose(stdout);
return 0;}
