Cod sursa(job #931430)

Utilizator sandugavrilaGavrila Alexandru sandugavrila Data 28 martie 2013 11:12:09
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>

using namespace std;
int v[6000005];
int main()
{
    int i,n,min,max,st,dr,x,maxx,p;
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    scanf("%d",&x);
    v[1]=x;
    maxx=min=max=v[1];
    st=dr=1;

    for(i=2;i<=n;i++)
    {
        scanf("%d",&x);
        if(x>maxx)
        {
            maxx=x;
            p=i;
        }
        v[i]=v[i-1]+x;
        if(v[i]>max)
        {
            max=v[i];
            dr=i;
        }
        if(v[i]<min)
        {
            min=v[i];
            st=i+1;
        }
    }
    if(st>dr)
    {
        max=maxx+min;
        st=dr=p;
    }

    printf("%d %d %d",max-min,st,dr);
    return 0;
}