Pagini recente » Cod sursa (job #1993926) | Cod sursa (job #988552) | Cod sursa (job #2829207) | Cod sursa (job #720394) | Cod sursa (job #127805)
Cod sursa(job #127805)
#include<stdio.h>
long p,max,poz,lung,x[4000501],b,a,n,m,j,k,l,i,q,w,z,s;
int main()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%ld",&n);
for (i=1;i<=n;i++)
{
scanf("%ld%ld",&a,&b);
if (b==0) x[i]=0-a; else x[i]=a;
x[n+i]=x[i];
}
max=-20001;
m=0;
l=0;
p=1;
q=n+n;
/* for (i=1;i<=q;i++)
{
l++;
m+=x[i];
if (m<0||l>n) {if (m>max&&l<=n) {max=m; lung=l; poz=p; } else if (l>n) i=p; m=0; l=0; p=i+1; }
else
{
if (m>max&&l<=n) {max=m; lung=l; poz=p; }
}
}
*/
for (i=1;i<=q;i++)
{
l++;
m+=x[i];
if (m<0||l>n) {if (m>max&&l<=n) {max=m; lung=l; poz=p; } else if (l>n) i=p+1; m=0; l=0; p=i+1; }
else
{
if (m>max&&l<=n) {max=m; lung=l; poz=p; }
}
}
if (poz>n) poz=poz-n;
printf("%ld %ld %ld\n",max,poz,lung);
return 0;
}