Cod sursa(job #130622)

Utilizator razvi9Jurca Razvan razvi9 Data 1 februarie 2008 16:22:09
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<cstdio>
int n,a[200001],i,x,y,smax,pmax,lmax,s,l2,p,l;
int main()
{freopen("buline.in","r",stdin);
 freopen("buline.out","w",stdout);
 scanf("%d",&n);
 for(i=1;i<=n;i++){
	 scanf("%d %d",&x,&y);
	 a[i]=y?x:-x;}
 smax=a[1];pmax=1;lmax=1;s=a[1];p=1;l=1;
 for(i=2;i<=n;i++){
	 if(s<0) {s=0;p=i;l=0;}
	 s=s+a[i];l++;
	 if(s>smax) {smax=s;pmax=p;lmax=l;}}
 if(s>0){l2=n-l;
	 for(i=1;i<=l2;i++){
		 if(s<=0) break;
		 s=s+a[i];l++;
		 if(s>smax) {smax=s;pmax=p;lmax=l;}}} 
 printf("%d %d %d",smax,pmax,lmax);
 fclose(stdout);
 return 0;}