Cod sursa(job #311306)

Utilizator rusu_raduRusu Radu rusu_radu Data 3 mai 2009 11:30:07
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream.h>

int n, i, st, dr, S, Smax, drmax, stmax, T[1000];
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main()
{
  fin>>n;
  for (i=1; i<=n; i++) fin>>T[i];
  st=1;
  for (i=1; i<=n; i++)
    {
      if (T[i]>=0)
	{
	  S+=T[i];
	  dr=i;
	}
      else
	{
	  if (S>Smax)
	    {
	      Smax=S;
	      drmax=dr;
	      stmax=st;
	    }
	  if (S+T[i]>0)
	    {S+=T[i];dr=i;}
	  else
	    {
	      S=0;
	      st=i+1;
	    }
	}
    }
  fout<<Smax<<" "<<stmax<<" "<<drmax<<'\n';
  fout.close();
  return 0;
}