Cod sursa(job #931450)

Utilizator sandugavrilaGavrila Alexandru sandugavrila Data 28 martie 2013 11:26:59
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <cstdio>

using namespace std;
int v[6000005];
int main()
{
    int i,n,min,max,st,dr,x,p,maxn;
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    scanf("%d",&x);
    v[1]=x;
    maxn=max=v[1];
    p=dr=1;
    for(i=2;i<=n;i++)
    {
        scanf("%d",&x);
        if(x>maxn)
        {
            maxn=x;p=i;
        }
        v[i]=v[i-1]+x;
        if(v[i]>max)
        {
            max=v[i];
            dr=i;
        }
    }
//161102 679286 798646

    min=v[dr];
    st=dr;
    for(i=dr-1;i>=1;i--)
        if(v[i]<=min)
        {
            min=v[i];
            st=i+1;
        }
    if(dr==1)
        printf("%d %d %d",maxn,p,p);
    else
        printf("%d %d %d",max-min,st,dr);
    return 0;
}