Cod sursa(job #37006)

Utilizator razvi9Jurca Razvan razvi9 Data 24 martie 2007 14:31:35
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 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);
  if(y) a[i]=x;
  else a[i]=-x;
  s=s+a[i];l++;
  if(s>smax) {smax=s;lmax=l;poz=i;}
  if(s<=0) {s=0;l=0;}}
 i=0;
 pozmax=n-l;
 while(s>0&&i<pozmax)
 {s=s+a[++i];l++;
  if(s>smax) {smax=s;lmax=l;poz=i;}}
 poz=poz-lmax;
 if(poz<1) poz=n+poz+1;
 printf("%d %d %d",smax,poz,lmax);
 fclose(stdout);
 return 0;}