Cod sursa(job #311311)

Utilizator rusu_raduRusu Radu rusu_radu Data 3 mai 2009 11:32:05
Problema Subsecventa de suma maxima Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>

long int n, a, i, st, dr, S, Smax, drmax, stmax;

FILE *fin=fopen("ssm.in", "r");
FILE *fout=fopen("ssm.out", "w");

int main()
{
  fscanf (fin, "%ld\n", &n);
  st=1;
  for (i=1; i<=n; i++)
    {
      fscanf (fin, "%ld ", &a);
      if (a>=0)
	{
	  S+=a;
	  dr=i;
	}
      else
	{
	  if (S>Smax)
	    {
	      Smax=S;
	      drmax=dr;
	      stmax=st;
	    }
	  if (S+a>0)
	    {S+=a;dr=i;}
	  else
	    {
	      S=0;
	      st=i+1;
	    }
	}
    }
  fprintf(fout, "%ld %ld %ld\n", Smax, stmax,drmax);
  fclose (fout);
  return 0;
}