Cod sursa(job #1438096)

Utilizator BLz0rDospra Cristian BLz0r Data 19 mai 2015 00:11:18
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <cstdio>
#include <climits>
using namespace std;

#define Nmax 6000002
#define inf 0x3f3f3f3f

FILE *f = fopen ( "ssm.in", "r" );
FILE *g = fopen ( "ssm.out", "w" );

int main(){

    int N, maxsum = LONG_MIN, sum = LONG_MIN, st = 0, sts, drs, lg = 0, x;

    fscanf ( f, "%d", &N );

    for ( int i = 1; i <= N; ++i ){
        fscanf ( f, "%d", &x );
        if ( x > 1LL * sum + x ){
            st = i;
            lg = 1;
            sum = x;
        }
        else{
            sum += x;
            lg++;
        }

        if ( sum > maxsum ){
            maxsum = sum;
            sts = st;
            drs = st + lg - 1;
        }

    }
    if ( sum > maxsum ){
        maxsum = sum;
        sts = st;
        drs = st + lg - 1;
    }

    fprintf ( g, "%d %d %d", maxsum, sts, drs );

    return 0;
}