Pagini recente » Monitorul de evaluare | Cod sursa (job #2965258) | Cod sursa (job #2558579) | Cod sursa (job #2094565) | Cod sursa (job #429878)
Cod sursa(job #429878)
#include <stdio.h>
FILE *f=fopen("buline.in","r"),*g=fopen("buline.out","w");
int i,n,v[400001],p,l,pm,lm,s,sm=-2000000000,t;
int main(void)
{
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
{
fscanf(f,"%d%d",&v[i],&t);
if (t==0)
v[i]=v[i]*(-1);
if (s<v[i] && s<0)
{
s=v[i];
l=1;
p=i;
}
else {s+=v[i]; l++;}
if (s>sm)
{
sm=s;
lm=l;
pm=p;
}
else
{
if (s==sm && l>lm && p==pm)
{
sm=s;
pm=p;
lm=l;
}
}
}
if (s>0)
for (i=1;i<p;i++)
{
if (s<v[i] && s<0)
{
s=v[i];
l=1;
p=i;
}
else {s+=v[i]; l++;}
if (s>sm)
{
sm=s;
lm=l;
pm=p;
}
else
{
if (s==sm && l>lm && p==pm)
{
sm=s;
pm=p;
lm=l;
}
}
}
fprintf(g,"%d %d %d\n",sm,pm,lm);
fclose(g);
return 0;
}