Cod sursa(job #899858)

Utilizator caliuxSegarceanu Calin caliux Data 28 februarie 2013 16:40:48
Problema Subsecventa de suma maxima Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
using namespace std;
int N, vec[6000000], st, dr, i, smax, start, finish;
int main(){
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
    scanf("%d", &N);
    for(i = 1; i <= N; i++){
        scanf("%d", &vec[i]);
        vec[i] += vec[i - 1];
    }
    smax = -(1 << 30) - 1;
    for(st = 1; st <= N; st++){
        for(dr = st; dr <= N; dr++){
            if(vec[dr] - vec[st - 1] > smax){
                smax = vec[dr] - vec[st - 1];
                start = st;
                finish = dr;
            }
        }
    }
    printf("%d %d %d", smax, start, finish);
}