Cod sursa(job #427651)

Utilizator hendrikHendrik Lai hendrik Data 28 martie 2010 11:43:09
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;

void open(){
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
}

#define MAXN 6000010
int n,x[MAXN],ans,sum,id,td,id2;

int main(){
    open();
    scanf("%d",&n);
    ans=0;sum=0;
    for (int i=1;i<=n;i++){
        scanf("%d",&x[i]);
        sum=max(0,sum+x[i]);
        if (ans<sum){
            ans=sum;
            id=i;
        }
    }
    printf("%d\n",ans);
    td=0;
    for (int i=id;i>=0;i--){
        td+=x[i];
        if (td==ans){
            id2=i;
            break;
        }
    }
    printf("%d %d\n",id2,id);
    //system("pause");
    return 0;
}