Pagini recente » Cod sursa (job #2023466) | Cod sursa (job #711933) | Cod sursa (job #2088494) | Cod sursa (job #2041254) | Cod sursa (job #59715)
Cod sursa(job #59715)
#include<stdio.h>
#include<math.h>
int s, i, smax, lg, poz, lgf, pozf, n, nr, sol;
struct ches{
int a, b;
};
ches v[400000];
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].a,&v[i].b);
for (i=n+1;i<2*n;i++){
v[i].a=v[i-n].a;
v[i].b=v[i-n].b;
}
nr=1;
s=0;
poz=1;
lg=0;
while (nr<2*n){
if (lg<n){
s+=pow(-1,v[nr].b-1)*v[nr].a;
if (v[nr].b==0) sol=nr;
lg++;
if (s>smax){
pozf=poz;
lgf=lg;
smax=s;
}
if (s<=0){
s=0;
lg=0;
poz=nr+1;
}
nr++;
}
else {
s=0;
poz=sol+1;
lg=0;
nr=sol+1;
}
}
printf("%d %d %d\n",smax,pozf,lgf);
fclose(stdin);
fclose(stdout);
return 0;
}