Cod sursa(job #427655)

Utilizator hendrikHendrik Lai hendrik Data 28 martie 2010 11:52:07
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 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 &zz){
    char c;
    bool sign=1;
    zz=0;
    while (c=getchar()){
        if (c>='0' && c<='9'){
            zz=c-'0';break;
        }
        else if (c=='-'){
            sign=0;
            break;
        }
    }
    while (c=getchar()){
        if (c>='0' && c<='9'){
            zz=(zz<<1)+(zz<<3)+(c-'0');
        }
        else break;
    }
    if (!sign) zz*=-1;
}

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;
}