Cod sursa(job #39468)
Utilizator | Data | 26 martie 2007 19:24:15 | |
---|---|---|---|
Problema | Buline | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<stdio.h>
int n,a[200001],i,x,y,pozmax,s,l,lmax,poz,smax=-10001;
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;} }
for(i=1;i<=n-l&&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;}