Cod sursa(job #2421136)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 14 mai 2019 12:43:02
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>
#define buff_size 400001


char buff[buff_size];int pos=0, semn;
FILE*f=freopen("ssm.in","r",stdin);
FILE*g=freopen("ssm.out","w",stdout);
inline void read(int &nr){
    semn = 1;
    while(buff[pos] < '0' || buff[pos] > '9'){if(buff[pos]== '-' )semn = -1; if(++pos == 200000) fread(buff, 1, 200000, stdin), pos = 0;}
    nr = 0;
    while('0' <= buff[pos] && buff[pos] <= '9') {nr = nr * 10 + buff[pos] - '0';if(++pos == 200000) fread(buff, 1, 200000, stdin), pos = 0;}
    nr*=semn;
}


int main()
{   int i,n,x=0;
    int maxs= -int(2e9),s=0,first,last,id;
    fread(buff, 1, 200000, stdin);
    read(n);
    for(i=1;i<=n;i++)
    {
        read(x);
    if(s<0) s=x,id=i;
    else s+=x;if(maxs<s) maxs=s,first=id,last=i;
    }

    printf("%d %d %d\n",maxs,first,last);
}