Cod sursa(job #1022831)

Utilizator sziliMandici Szilard szili Data 5 noiembrie 2013 23:30:57
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

using namespace std;

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

    int n;

    scanf("%d", &n);

    int number;
    int minn;
    int minFirst = -1;
    int minLast = -1;
    int currentSum  = 0;
    int maximum;

    //read first one separately
    scanf("%d", &number);
    minn = number;
    minFirst = 1;
    minLast = 1;
    maximum = number;
    currentSum = number;

    for (int i=2; i<=n; i++){
        scanf("%d", &number);
        currentSum += number;

        if (currentSum < minn){
            minn = currentSum;
            minFirst = i+1;
        }

        if (maximum < (currentSum - minn)){
            maximum = currentSum - minn;
            minLast = i;
        }

    }

    printf("%d %d %d", maximum, minFirst, minLast);

    return 0;
}