Cod sursa(job #1060485)

Utilizator lorundlorund lorund Data 18 decembrie 2013 00:19:52
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>
#include <climits>

int main()
{
    int solsum=INT_MIN, startsol=0, stopsol=0, start=0, sum=0;
    int N;

    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);

    scanf("%d", &N);
    for (int i=1; i<=N; ++i){
        int x;

        scanf("%d", &x);
        sum += x;
        if (solsum<sum){
            startsol = start;
            stopsol = i;
            solsum = sum;
        }
        else if (solsum==sum && stopsol-startsol>i-start){
            startsol = start;
            stopsol = i;
        }
        if (sum<0){
            sum = 0;
            start = i+1;
        }
    }
    printf("%d %d %d", solsum, startsol, stopsol);
    return 0;
}