Cod sursa(job #1231128)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 19 septembrie 2014 17:30:02
Problema Subsecventa de suma maxima Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#define Inf 0x3f3f3f3f
using namespace std;
int n,i,a[5001],sum[5001],min0,bestSum,best[5001],i2,j2,j3;
int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    sum[0]=0;
    for(i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            sum[i]=a[i]+sum[i-1];
        }
    min0=sum[0];
    bestSum=-Inf;
    for(i=1;i<=n;i++)
    {
        best[i]=sum[i]-min0;
        if(min0 > sum[i]) {min0=sum[i]; j2=i;}
        if(bestSum<=best[i]) {bestSum=best[i]; i2=i; j3=j2;}

    }
    printf("%d %d %d",bestSum,j3+1,i2);



    return 0;
}