Cod sursa(job #1671841)

Utilizator hegedusPaul Hegedus hegedus Data 2 aprilie 2016 11:07:22
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <cstdio>
using namespace std;

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

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=pozmin+1,
            j=x;
        if (v[x]<xmin)
            xmin=v[x],
            pozmin=x;
    }
}

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