Cod sursa(job #676682)

Utilizator hiticas_abelhiticasabel hiticas_abel Data 9 februarie 2012 15:16:20
Problema Subsecventa de suma maxima Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
# include<fstream>
#include<math.h>

using namespace std;

long n, i, a[600000];
long best_sum[6000000],inceput, sf, c=0;
ifstream f("ssm.in");
ofstream g("ssm.out");

void citire()
{
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
f.close();     
}

  void ssm ()
  {
  for(i=1;i<=n;i++)
  {
                   best_sum[i]=a[i];
                   if(best_sum[i-1]+a[i]>best_sum[i])
                   {best_sum[i]=best_sum[i-1]+a[i];
                    
  }
           
  }

  
  
  }
  
  
  
  
  int main()
  {
     int max=best_sum[1];
 
  citire();
  ssm();    
  
  for(i=1;i<=n;i++)
  if(best_sum[i]>max)
  {max=best_sum[i];
    sf=i;
}
for(i=sf;i>=1;i--)
  if (a[i]==best_sum[i]) {inceput=i;break;}
  

  g<<max<<" "<<inceput<<" "<<sf; 
  
 
return 0;
}