Cod sursa(job #36828)

Utilizator kyrkDragos Dumitrescu kyrk Data 24 martie 2007 09:42:56
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
main()
{
long  a[500000],i,j,k,incmax,finmax,x,sp,valid,n,s,smax,inc,fin;
FILE *f,*g;
f=fopen("buline.in","r");
g=fopen("buline.out","w");
fscanf(f,"%ld",&n);
for(i=1;i<=n;i++)
 { fscanf(f,"%ld%ld",&k,&sp);
   if(sp==0)k*=-1;
   a[i]=k;
   a[n+i]=k;
 }
k=n;k*=2;k--;
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){smax=s;incmax=inc;finmax=fin;}
   if(s<=0){inc=i+1;fin=i;s=0;}
   i++;
   }while((i<=k)&&((fin-inc)+1<=n));

fprintf(g,"%ld %ld %ld",smax,incmax,((finmax-incmax)+1));


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