Pagini recente » Cod sursa (job #1789938) | Cod sursa (job #2009779) | Cod sursa (job #373344) | Cod sursa (job #1900453) | Cod sursa (job #214514)
Cod sursa(job #214514)
#include<stdio.h>
int n,rst=0,v[20000],t[20000],p[20000],l[20000];
void setvalues()
{
int reseted=0,starter=1,i,nores=0;
long long sum=0, max=-10000;
int etln=0;
for(i=1;i<=n;i++)
{
sum+=v[i];
t[i]=sum;
p[i]=starter;
etln++;
l[i]=etln;
if(v[i]>-1)
nores=1;
if(sum<=0&&nores)
{if(!rst)
rst=i;
starter=i+1;
reseted++;
sum=0;
etln=0;
// if(t[i]-v[i]<t[i])
// {
// t[i]-=v[i];
// l[i]--;
// }
}
}
}
int main()
{
int i,x;
long long max=-10000;
int ps,lg;
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",(v+i),&x);
if(!x)
v[i]=-v[i];
}
setvalues();
ps=lg=0;
int ti=0;
for(i=1;i<=rst;i++)
{
if(t[i]>max)
{
max=t[i];
ps=p[i];
lg=l[i];
}
if(t[i]+t[n]>max)
{
max=t[i]+t[n];
ps=p[n];
lg=l[i]+l[n];
}
}
printf("%lld ",max);
printf("%d ",ps);
printf("%d",lg);
return 0;
}