Cod sursa(job #70639)

Utilizator Darth_NiculusIvan Nicolae Darth_Niculus Data 6 iulie 2007 16:42:07
Problema Secventa 2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
/* Ivan Nicolae - Bucuresti */
/* Secventa 2 - Infoarena */
#include <stdio.h>

#define _fin  "secv2.in"
#define _fout "secv2.out"
#define negativ(x) (((x)<0) ? (1) : (0))
#define Infinity 0x3f3f3f3f

int i,n,m,x,l,r,S,Smax,Lmax,Rmax;

int main(void)
{
 freopen(_fin,"r",stdin);
 freopen(_fout,"w",stdout);

 scanf("%d%d",&n,&m);
 l=1; r=0; S=0; Smax=-Infinity; int Stot=0;
 for (i=1;i<=n;i++)
    {
     Stot+=x;
     scanf("%d",&x);
     S+=x; r++;
     if (S>=Smax && r-l+1>=m)
       { Smax=S; Lmax=l; Rmax=r; }
     if (negativ(S)) 
       { l=i+1; r=i; S=0; }
    }

 if (m < n)
   printf("%d %d %d\n",Lmax,Rmax,Smax);
   else printf("%d %d %d",1,n,Stot);

 fclose(stdin);
 fclose(stdout);
 return 0;
}