Cod sursa(job #1127522)

Utilizator PlatonPlaton Vlad Platon Data 27 februarie 2014 12:45:28
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>
#include <algorithm>

#define maxn 6000000

int n, suma[maxn], s, i1, i2;

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

    scanf("%d", &n);

    s=-int(2e9);

    int x;
    scanf("%d", &x);
    suma[1]=x;
    for(int i=2;i<=n;i++)
    {
        scanf("%d", &x);

        if(x>x+suma[i-1])
        {
            suma[i]=x;
            i1=i;
        }
        else
        {
            suma[i]=x+suma[i-1];
        }
        if(suma[i]>s)
        {
            s=suma[i];
            i2 = i;
            printf("%d \n", s);
        }
    }
    if(i1>i2)
    {
        i1=i2;
    }
    printf("%d %d %d", s, i1, i2);
}