Cod sursa(job #415385)
Utilizator | Biro Alexandru biro | Data | 11 martie 2010 11:25:51 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 75 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.75 kb |
#include <stdio.h>
#define INF 2000000000
int pi1=0 ;
int pi2=0 ;
int min=0 ;
int pf=0 ;
int s=0 ;
int main()
{
freopen ("ssm.in","r",stdin) ;
freopen ("ssm.out","w",stdout) ;
int n ;
int nr ;
int max =-INF ;
scanf("%d" , &n) ;
for (int i=1 ; i<=n ; i++)
{
scanf ("%d" , &nr) ;
s+=nr;
if(s-min>max)
{
max=s-min;
pi2=i;
pf=pi1;
}
if(min>s)
{
min=s;
pi1=i;
}
}
printf ("%d %d %d" , max , pf+1 , pi2) ;
return 0;
}