Cod sursa(job #1122049)

Utilizator MihaiPredoiuMihai Predoiu MihaiPredoiu Data 25 februarie 2014 15:37:44
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>
#include <algorithm>

int v[6000006],t[6000006];

using namespace std;
int main ()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    int n,m,i,j,k;
    scanf("%d",&n);
    for (i=1;i<=n;++i)
        scanf("%d",&v[i]);
    m=v[1];
    for (i=1;i<=n;++i){
        t[i]=v[i];
        t[i]=max(t[i],t[i-1]+v[i]);
        if (t[i]>m){
            m=t[i];
            j=i;
        }
    }
    printf("%d ",m);
    k=j;
    while (m!=0){
        m-=v[j];
        j--;
    }
    while (v[j]==0)
        j--;
    printf("%d %d",j+1,k);
    return 0;
}