Cod sursa(job #618456)

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

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

int v[8], lastr=0;


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

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

  for(int i=1; i<n; i++)
  {
    if( lastr )
    {
      nr = v[5-lastr];
      lastr--;
    }
    else if( lastr==0 && i+5<=n )
    {
      scanf("%d %d %d %d %d %d", &nr, &v[0], &v[1], &v[2], &v[3], &v[4]);
      lastr = 5;
    }
    else
      scanf("%d", &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;
}