Cod sursa(job #1128252)

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

#include<stdio.h>
#define NMax 6000005
#define inf 2<<31
int v[NMax],Sum[NMax],best[NMax],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[i] = Sum[i] - Vmin;
        if( Vmin > Sum[i]) {Vmin = Sum[i]; is = i; }
        if(bestS < best[i]) { bestS = best[i]; ij = i; }
     }
     printf("%d %d %d",bestS,is+1,ij);
}