Cod sursa(job #404633)
Utilizator | Georgescu Dan cameleon | Data | 26 februarie 2010 14:24:26 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include<stdio.h>
int n,s,a,i1,j1,i,imax,jmax,smax;
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&n);i1=1;
s=0;smax=-2000000000;
for(i=1;i<=n;i++)
{
scanf("%d",&a);
if(s+a>=a)
{
s+=a;j1++;
}
else
{
s=a;i1=i;j1=i;
}
if(s>smax)
{
smax=s;
imax=i1;jmax=j1;
}
else
if(s==smax)
{
if(j1-i1 < jmax-imax)
{
imax=i1;jmax=j1;
}
}
}
printf("%d %d %d",smax,imax,jmax);
return 0;
}