Cod sursa(job #1128256)

Utilizator Sirius2001Happy Birthday Sirius2001 Data 27 februarie 2014 16:18:02
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
/*
    Keep It Simple!
*/

#include<stdio.h>
#define NMax 6000005
#define inf 2<<31
int v[NMax],Sum[NMax],best,bestS,n,is,ij;

int main()
{
   freopen("ssm.in","r",stdin);
   freopen("ssm.out","w",stdout);

   scanf("%d",&n);
   for(int i=1;i<=n;i++) scanf("%d",&v[i]);

   for(int i=1;i<=n;i++) Sum[i] = Sum[i-1]+v[i];

   bestS = -inf;
   int Vmin = 0; is = 0;

   for(int i=1;i<=n;i++)
     {
        best = Sum[i] - Vmin;
        if( Vmin > Sum[i]) {Vmin = Sum[i]; is = i; }
        if(bestS < best) { bestS = best; ij = i; }
     }
     printf("%d %d %d",bestS,is+1,ij);
}