Cod sursa(job #427654)

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

void open(){
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
}
const int oo=(int)2e9;
int n,x,ans,sum,b1,b2,id2;

void get_int(int &a){
    char c;
    while (c=getchar()){
        if (c>='0' && c<='9'){
            a=c-'0';break;
        }
    }
    while (c=getchar()){
        if (c>='0' && c<='9'){
            a=(a<<1)+(a<<3)+(c-'0');
        }
        else break;
    }
}

int main(){
    open();
    get_int(n);
    ans=-oo;sum=0;
    for (int i=1;i<=n;i++){
        get_int(x);
        if (sum<0){
            sum=x;id2=i;
        }
        else {
            sum+=x;
        }
        if (ans<sum){
            ans=sum;
            b1=id2;b2=i;
        }
    }
    printf("%d %d %d\n",ans,b1,b2);
    //system("pause");
    return 0;
}