Cod sursa(job #618466)

Utilizator desoComan Andrei deso Data 15 octombrie 2011 17:25:17
Problema Subsecventa de suma maxima Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <string>
using namespace std;

#define INFILE "ssm.in" 
#define OUTFILE "ssm.out"

int main()
{
  freopen(INFILE, "r", stdin);
  freopen(OUTFILE, "w", stdout);

  long long int n, msum, mst, mend, nr, sum, ist;
  scanf("%lld %lld", &n, &msum);
  mst = mend = ist = 0;
  sum = (msum < 0 ? 0 : msum);
  n--;

  for(long long int i=1; i<n; i++)
  {
    scanf("%lld", &nr);
    sum += nr;
    if( sum>msum )
    {
      mst = ist;
      mend = i;
      msum = sum;
    }
    if( sum<0 )
    {
      sum = 0;
      ist = i+1;
    }
  }

  cout << msum << " " << mst+1 << " " << mend+1 << "\n";
	
	return 0;
}