Pagini recente » Cod sursa (job #1337455) | Cod sursa (job #1698949) | Cod sursa (job #2282380) | Cod sursa (job #2054117) | Cod sursa (job #271672)
Cod sursa(job #271672)
#include<stdio.h>
int v[20002],i,ok,j,k,m,n,s1,s2,sum,min,p,l,p2,l2,poz;
int main(){
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{scanf("%d %d",&v[i],&ok);
if(!ok)v[i]=(-1)*v[i];
}
s1=v[1];p=1;l=1;
sum=v[1];min=v[1];poz=1;
for(i=2;i<=n;i++)
{sum+=v[i];
if((sum-min)>s1){s1=sum-min;p=poz+1;l=i-poz;}
if(sum<min)
{min=sum;
poz=i;
}
}
if(p+l==n+1&&p>2){
s2=v[1];l2=1;
for(sum=v[1],i=2;i<p;i++)
{sum+=v[i];
if(sum>s2&&sum>0){s2=sum;l2=i;}
}
if(s2>0)
{s1+=s2;l+=l2;}}
printf("%d %d %d",s1,p,l);
return 0;}