Cod sursa(job #901396)

Utilizator paul_danutDandelion paul_danut Data 1 martie 2013 10:02:09
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
#define Nmax 6000001
int a[Nmax],n,bestsum,best[Nmax],sum[Nmax];
int main()
{
    int i,min,j,inceput,sfarsit;
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i];
    for(i=1;i<=n;i++)
        sum[i]=a[i]+sum[i-1];
    min=sum[0];
    bestsum=-100000;
    for(i=1;i<=n;i++)
       {
           best[i]=sum[i]-min;
           if(min>sum[i])
              {min=sum[i];
              j=i+1;}
           if(bestsum<best[i])
              {bestsum=best[i];
              inceput=j;
              sfarsit=i;}
       }
    g<<bestsum<<' '<<inceput<<' '<<sfarsit;
}