Pagini recente » Cod sursa (job #1222919) | Cod sursa (job #428765) | Cod sursa (job #3152029) | Cod sursa (job #204924) | Cod sursa (job #36828)
Cod sursa(job #36828)
#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;
}