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