Cod sursa(job #804689)

Utilizator xeressL.Tudor xeress Data 30 octombrie 2012 08:53:38
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
#define NMAX 70000100
 using namespace std;
 ifstream f("ssm.in");
 ofstream g("ssm.out");
 long long n,a[NMAX],sum[NMAX],best[NMAX],bestSum,i,k,start,end;
 int main()
 {f>>n;
    sum[0]=0;  int min=sum[0];
    for( i=1; i<=n; ++i) f>>a[i];
    for( i=1; i<=n; ++i)
     sum[i]=a[i]+sum[i-1];
    bestSum=1<<31;
    for( i=1; i<=n; ++i)
    {
         best[i]=sum[i]-min;
        if( min > sum[i]) min=sum[i],k=i+1;


        if(bestSum < best[i])
            {bestSum=best[i]; start=k; end=i;}

    }
    g<<bestSum<<" "<<start<<" "<<end<<" ";

     return 0;
 }