Cod sursa(job #313230)

Utilizator vlad_popaVlad Popa vlad_popa Data 8 mai 2009 13:33:14
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>

int N, V[6000005];

int main () {
    freopen ("ssm.in", "r", stdin);
    freopen ("ssm.out", "w", stdout);
    
    int i, S, sol, sst, sdr, st, dr;
    
    scanf ("%d", &N);
    for (i = 1; i <= N; ++ i)
        scanf (" %d", V + i);
        
    for (i = 2, S = sol = V[1], sst = sdr = st = dr = 1; i <= N; ++ i) {
        if (S + V[i] < V[i]) S = V[i], st = dr = i;
        else S += V[i], ++ dr;
        
        if (S > sol) {
            sst = st, sdr = dr, sol = S;
        }
    }
        
    printf ("%d %d %d\n", sol, sst, sdr);
        
    return 0;
}