Cod sursa(job #349755)
Utilizator | Data | 21 septembrie 2009 14:34:23 | |
---|---|---|---|
Problema | Buline | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<stdio.h>
int o,S,ifin,ok,q,jfin,max,N,v[200010],l[200000],a,b;
int main()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&N);
for(int i=1;i<=N;++i)
{
scanf("%d%d",&a,&b);
if(b==0)
b=-1;
v[i]=a*b;
l[i]=l[i-1]+v[i];
}
for(int i=1;i<=N;++i)
{
if(l[i-1]>=l[max])
max=i-1;
if((l[max]+(l[N]-l[i]))>ok)
{
ok=l[max]+(l[N]-l[i]);
ifin=i+1;
jfin=(N-i)+max;
}
}
printf("%d %d %d",ok,ifin,jfin);
}