Cod sursa(job #800831)

Utilizator gigi1996gicamarin gigi1996 Data 22 octombrie 2012 19:22:37
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 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;
    for( i=1; i<=n; ++i) {f>>a[i];  sum[i]=a[i]+sum[i-1];}
    int min=sum[0];
    bestSum=-19999999;
    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;
 }