Pagini recente » Cod sursa (job #2259349) | Cod sursa (job #1482172) | Cod sursa (job #2944616) | Cod sursa (job #904801) | Cod sursa (job #284581)
Cod sursa(job #284581)
#include <stdio.h>
#define DIM 200005
int s[DIM];
int n,min,mi,lg,max,mini,max2,minii;
void read ()
{
int i,x,c;
scanf("%d",&n);
for (i=1; i<=n; ++i)
{
scanf("%d%d",&x,&c);
if (c==0) x=-x;
s[i]=s[i-1]+x;
}
}
void solve1 ()
{
int i;
for (i=1; i<=n; ++i)
{
if (s[i]-min>max)
{
max=s[i]-min;
mi=mini+1;
lg=i-mini;
}
if (s[i]<min)
{
min=s[i];
mini=i;
}
}
}
void solve2 ()
{
int i;
for (i=1; i<=n; ++i)
{
if (max2+s[n]-s[i-1]>max)
{
max=max2+s[n]-s[i-1];
mi=i;
lg=minii+n-i+1;
}
else if (max2+s[n]-s[i-1]==max)
lg=minii+n-i+1;
if (s[i]>max2)
{
max2=s[i];
minii=i;
}
}
}
int main()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
read ();
solve1 ();
solve2 ();
printf("%d %d %d\n",max,mi,lg);
return 0;
}