Cod sursa(job #398445)

Utilizator arnold23Arnold Tempfli arnold23 Data 18 februarie 2010 18:32:24
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
//#include <stdio.h>
#include <fstream>

using namespace std;
long a,n,i,best,kezd,veg,sum,q;
long k[6000010];

int main()
{
    
//  freopen("ssm.in","r",stdin);
//  freopen("ssm.out","w",stdout);
  ifstream in("ssm.in");
  ofstream out("ssm.out");
 
  
//  scanf("%ld\n",&n); 
  in >> n; 
  best=-(int)2e9;
  k[0]=0;
  sum=0;
  for(i=1;i<=n;++i)
  {
//   scanf("%ld ",&a);  
   in >> a;
   q=sum+a;
   if(q>=a) {sum=q; k[i]=k[i-1]; }
   else {sum=a; k[i]=i; }
   if(sum>best) {best=sum; kezd=k[i]; veg=i; }           
  } 
              
  
//  printf("%ld %ld %ld",best,kezd,veg);
   out << best << " " << kezd << " " << veg;    
       
  return 0;    
}