Cod sursa(job #1671814)

Utilizator hegedusPaul Hegedus hegedus Data 2 aprilie 2016 10:55:12
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <cstdio>
using namespace std;

const int nmax=6000000;
long v[nmax],n,x,i,pozmin,xmin,sum,summax;

void citire()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    for(x=1;x<=n;x++)
        scanf("%d",&v[x]);
}

void sume_partiale()
{
    for(x=1;x<=n;x++)
        v[x]+=v[x-1];
}

void det_ssm()
{
    for(x=1;x<=n;x++)
    {
        sum=v[x]-xmin;
        if (sum>summax)
            summax=sum,
            i=x;
        if (v[x]<xmin)
            xmin=v[x],
            pozmin=x+1;
    }
}

int main()
{
    citire();
    sume_partiale();
    det_ssm();
    printf("%d %d %d\n",summax,pozmin,i);
    return 0;
}