Cod sursa(job #415389)

Utilizator biroBiro Alexandru biro Data 11 martie 2010 11:31:11
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <algorithm>
#define input "ssm.in"
#define output "ssm.out"
#define INF 2000000000-1


int main()
{
    freopen (input,"r",stdin) ;
    freopen (output,"w",stdout) ;
    
    int n ;
    int nr ;
    int s=0 ;
    int max =-INF ;
    int pi1=0 ;
    int pi2=0 ; 
    int min=0 ;
    int pf=0 ;
    

    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;
}