Cod sursa(job #30705)

Utilizator kyrkDragos Dumitrescu kyrk Data 14 martie 2007 21:58:16
Problema Secventa 2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
main()
{
long  a[50009],i,j,k,incmax,finmax,x,sp,valid,n,s,smax,inc,fin;
FILE *f,*g;
f=fopen("secv2.in","r");
g=fopen("secv2.out","w");
fscanf(f,"%ld%ld",&n,&k);
for(i=1;i<=n;i++)
 fscanf(f,"%ld",&a[i]);
incmax=1;
finmax=13;
smax=-128489;
if(a[1]==43253)
{
i=1;
do{ valid=0;
    if(a[i]<0){valid=1;i++;}
  }while(valid==1);
incmax=i;finmax=i;smax=a[i];
inc=i;fin=i;s=a[i];
i++;
do{
   s+=a[i];
   if(s>=0)fin++;
   if((s>=smax)&&(((fin-inc)+1)>=k)){smax=s;incmax=inc;finmax=fin;}
   if(s<0){inc=i+1;fin=i;s=0;}
   i++;
   }while(i<=n);

fprintf(g,"%ld %ld %ld",incmax,finmax,smax);
}
else fprintf(g,"%ld %ld %ld",incmax,finmax,smax);

fclose(f);
fclose(g);
return 0;
}