Cod sursa(job #314310)

Utilizator cosgbCosmin cosgb Data 11 mai 2009 11:14:33
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <stdio.h>
int main()
{ freopen ("ssm.in","r",stdin);
  freopen ("ssm.out","w",stdout);
  long n,st,st1,dr,suma,i,x;
  long long suma1;
   scanf ("%ld",&n);
   st=st1=1;;dr=0;
   suma=-100000000000LL;
   suma1=0;
   for (i=1;i<=n;i++)
   { scanf ("%ld",&x);
     if ((st==i)&&(x<=0)) {suma1=x;
			   if (suma<suma1)
				 {dr=i;
				  suma=suma1;
				  st=st1;
				 }
			   suma1=0;
			   st1=i+1;
			  }
       else
     if (i==n)
    {
       if ((x<=0)&&(st<i))
	  {
	     if (suma1>suma) {suma=suma1;
			      dr=i-1;
			      st1=st;
			      st=i;
			     }
	     if (x>suma)     {suma=x;
			      st1=st;
			      dr=i;
			     }
	  }
       else

    {
     suma1=suma1+x;
	if (suma1>suma) {suma=suma1;
			 st=st1;
			 dr=i;
			}
    }
    }
       else
    {  suma1=suma1+x;
       if (suma1<0)
	      {
	       if (x>suma) {suma=x;
			    st=i;
			    dr=i;

			   }
		     suma1=0;
		     st1=i+1;
	      }
	    else
       if (suma1>suma) {suma=suma1;
			dr=i;
			st=st1;
		       }
    }





   }
printf ("%ld %ld %ld",suma,st,dr);

fcloseall();
return 0;
}