Cod sursa(job #899471)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 28 februarie 2013 14:39:07
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#define dim 5000007
using namespace std;


ifstream f("ssm.in");
ofstream g("ssm.out");

long long x,n,smax,si,s,i,sf;
long long sum[dim],a[dim];
long long best[dim];
long long minu;
int main () {

    f>>n;
    sum[0]=0;
    for(i=1;i<=n;++i){
        f>>a[i];
        sum[i]=a[i]+sum[i-1];
    }
    minu=sum[0];
    smax=-100000000;
    for(i=1;i<=n;++i){
        best[i]=sum[i]-minu;

        if(minu>=sum[i]){
            sum[i]=minu;
            s=i;
        }
        if(smax<best[i]){
            smax=best[i];
            si=s+1;
            sf=i;
        }
    }
    g<<smax<<" "<<si<<" "<<sf;
    return 0;
}