Cod sursa(job #800845)

Utilizator gigi1996gicamarin gigi1996 Data 22 octombrie 2012 19:56:07
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
#define NMAX 6000010
 using namespace std;
 ifstream f("ssm.in");
 ofstream g("ssm.out");
 int 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;
 }