Cod sursa(job #415189)

Utilizator dragos.denaDena Dragos dragos.dena Data 10 martie 2010 23:20:48
Problema Subsecventa de suma maxima Scor 75
Compilator c Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>
#define max(a,b) (a > b) ? a:b

void swap(int* a, int* b){
    int temp = *a;
    *a = *b;
    *b = temp;
}

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

    int a1, a2, b1, b2, idi, ide, maxg, idi_crt, n, i;
    idi_crt = idi = ide = 0;

    scanf("%d", &n);
    scanf("%d", &a1);
    maxg = b1 = a1;
    for(i = 1; i < n; i++){
        scanf("%d", &a2);
        b2 = max(a2, a2 + b1);
        if(b2 == a2) idi_crt = i;
        if(maxg < b2) {
            maxg = b2;
            ide = i;
            idi = idi_crt;
        }
        b1 = b2; a1 = a2;
    }

    printf("%d %d %d\n", maxg, idi + 1, ide + 1);
    return 0;
}