Cod sursa(job #678197)

Utilizator dean_dumitruDean Dumitru dean_dumitru Data 11 februarie 2012 10:37:11
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <cstdio>


using namespace std;

int k, a[100], sum[100], best[100];
int bestsum = -int(2e9), minn;
int ii, is, iii;

int sum_max_sec()
{
    sum[0] = 0;
    for(int i = 1; i <= k; i++)
        sum[i] = a[i] + sum[i-1];
    minn = sum[0];
    for(int i = 1; i <= k; i++)
    {
        best[i] = sum[i] - minn;
        if(minn > sum[i])
        {
            minn = sum[i];
            ii = i+1;
        }
        if(bestsum < best[i])
        {
            bestsum = best[i];
            is = i;
            iii = ii;
        }
    }
    return bestsum;
}

int main()
{
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
    scanf("%d", &k);
    for(int i = 1; i <= k; i++)
        scanf("%d", &a[i]);

    printf("%d %d %d", sum_max_sec(), iii, is);
    return 0;
}