Pagini recente » Cod sursa (job #2164155) | Cod sursa (job #2262701) | Cod sursa (job #3162928) | Cod sursa (job #1921967) | Cod sursa (job #27333)
Cod sursa(job #27333)
#include <stdio.h>
int n,S;
int sol[2],poz[2],pozs[2],m[2],l[2];
int main()
{
int i,x,j;
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&n);
scanf("%d %d",&x,&j);
if(!j)
x=-x;
S=x;
l[0]=1,poz[0]=pozs[0]=1,sol[0]=m[0]=x;
l[1]=n-1,poz[1]=pozs[1]=2,sol[1]=m[1]=x;
for(i=2;i<n;++i)
{
scanf("%d %d",&x,&j);
if(!j)
x=-x;
S+=x;
if(m[0]<0)
m[0]=0,poz[0]=i;
if(m[1]>0)
m[1]=0,poz[1]=i;
m[0]+=x,m[1]+=x;
if(m[0]>sol[0])
sol[0]=m[0],pozs[0]=poz[0],l[0]=i-poz[0]+1;
if(m[1]<sol[1])
sol[1]=m[1],pozs[1]=(i%n)+1,l[1]=n-i+poz[1]-1;
}
if(S-sol[1]>sol[0]||(S-sol[1]==sol[0]&&pozs[0]>pozs[1])||
(S-sol[1]==sol[0]&&pozs[0]==pozs[1]&&l[0]>l[1]))
sol[0]=S-sol[1],pozs[0]=pozs[1],l[0]=l[1];
printf("%d %d %d\n",sol[0],pozs[0],l[0]);
return 0;
}