Cod sursa(job #39471)

Utilizator razvi9Jurca Razvan razvi9 Data 26 martie 2007 19:27:38
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<stdio.h>
int n,a[200001],i,x,y,pozmax,s,l,lmax,poz,smax=-2000000000;
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;
 s=s+a[i];
 if(!poz) poz=i;
 l++;
 if(s>smax) {smax=s;lmax=l;pozmax=poz;}
 if(s<0) {s=0;poz=0;l=0;} }
 if(s>0)
 for(i=1;i<poz&&(s+a[i])>0;i++)
 {s=s+a[i];
  l++;
  if(s>smax) {smax=s;lmax=l;pozmax=poz;}}
 printf("%d %d %d",smax,pozmax,lmax);
 fclose(stdout);
 return 0;}