Cod sursa(job #588897)

Utilizator vendettaSalajan Razvan vendetta Data 9 mai 2011 22:13:57
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
# include <cstdio>
#define nmax 6000005

using namespace std;

int max, sum, i, j, n, i1, i2, st, v[nmax], s[nmax];

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

    scanf("%d", &n);
    for (i = 1; i <= n; ++i) {
        scanf("%d", &v[i]);
        s[i] = s[i-1] + v[i];
    }

    i1 = i2 = st = 1; sum = s[1]; max = sum;
    for (i = 2; i <= n; ++i) {
        sum = sum + v[i];
        if (sum < s[i] - s[i-1]){
            sum = s[i] - s[i-1];
            st = i;
            }
        if (sum > max) {
            max = sum;
            i1 = st;
            i2 = i;
            }
        }

    printf("%d %d %d\n", max, i1, i2);
    return 0 ;
}