Cod sursa(job #1174169)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 22 aprilie 2014 11:32:16
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#define DIM 6000010
using namespace std;
int n, i, v[DIM], a[DIM], maxim, p[DIM], poz;

inline int max(int x, int y){
    return (x>y?x:y);
}

int main(){
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
    scanf("%d", &n);
    for(i=1; i<=n; i++)
        scanf("%d", &v[i]);
    for(i=1; i<=n; i++)
    {
        a[i]=v[i]+a[i-1];
        p[i]=p[i-1]+1;
        if(a[i]<v[i])
        {
            p[i]=1;
            a[i]=v[i];
        }
    }
    maxim=a[1];
    poz=1;
    for(i=2; i<=n; i++)
    {
        if(maxim<a[i])
            maxim=a[i], poz=i;
    }
    printf("%d %d %d\n", maxim, poz-p[poz]+1, poz);
    return 0;
}