Pagini recente » Cod sursa (job #2201409) | Cod sursa (job #1776141) | Cod sursa (job #1674372) | Cod sursa (job #820743) | Cod sursa (job #271664)
Cod sursa(job #271664)
#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;
for(i=1;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){
sum=0;min=0;poz=0;
for(i=1;i<p;i++)
{sum+=v[i];
if(sum>s2)
{s2=sum;l2=i-poz+1;}
if(sum<min){min=sum;poz=i;}
}
if(s2)
{l+=l2;s1+=s2;} }
printf("%d %d %d",s1,p,l);
return 0;}