Cod sursa(job #261033)

Utilizator runnaway90Oprescu Radu Constantin runnaway90 Data 17 februarie 2009 20:29:38
Problema Subsecventa de suma maxima Scor 95
Compilator c Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>

int s[2], smax = 0, i, n, inc[2], in , out, a;

int main(){
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);

    for (i = 1; i <= n; i++){
        scanf("%d", &a);
        if ((a > 0 && s[(i+1)%2] < 0) || (a >= s[(i+1)%2] + a))
            s[i%2] = a, inc[i%2] = i;
        else
            s[i%2] = s[(i+1)%2] + a, inc[i%2] = inc[(i+1)%2];

        if ( s[i%2] > smax){
            smax = s[i%2];
            in = inc[i%2];
            out = i;
        }
        //printf("%d %d %d\n", s[i%2], inc[i%2], i);
    }
    printf("%d %d %d\n", smax, in, out);
    return 0;
}