Cod sursa(job #278043)

Utilizator alexandru92alexandru alexandru92 Data 12 martie 2009 08:20:12
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<stdio.h>
#include<stdlib.h>
int n,x[6000001],Sum,SMax,st,poz,Lg;
int main()
  {int i;
   freopen("ssm.in","rt",stdin);
   freopen("ssm.out","wt",stdout);
   scanf("%d",&n);
   for(i=0;i<n;++i) scanf("%d",&x[i]);
   for(SMax=Sum=x[0],st=poz=0,Lg=i=1;i<n;++i)
      if(Sum<0)
        Sum=x[i],st=i;  //daca suma e negativa incep de  la urmatorul element ;)
        else {Sum+=x[i];       //altfel continui sa adug elemente ;)
              if(Sum>SMax) SMax=Sum,poz=st,Lg=i-st+1;  //daca suma este maxima o memorez ;)
              }
   printf("%d %d %d\n",SMax,poz+1,Lg+poz);
   //system("PAUSE");
   return 0;
  }