Cod sursa(job #1124750)

Utilizator visanrVisan Radu visanr Data 26 februarie 2014 13:37:09
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>
using namespace std;

const int INF = 0x3f3f3f3f;

int N, X, CrtS, MinS, IndexMinS, Ans = -INF, AnsLeft, AnsRight;

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

    scanf("%i", &N);
    for(int i = 1; i <= N; ++ i)
    {
        scanf("%i", &X);
        CrtS += X;
        if(CrtS - MinS > Ans) Ans = CrtS - MinS, AnsLeft = IndexMinS + 1, AnsRight = i;
        if(CrtS < MinS) MinS = CrtS, IndexMinS = i;
    }

    printf("%i %i %i\n", Ans, AnsLeft, AnsRight);
}