Pagini recente » Cod sursa (job #2926703) | Cod sursa (job #2195855) | Cod sursa (job #1638474) | Cod sursa (job #134346) | Cod sursa (job #71155)
Cod sursa(job #71155)
#include<stdio.h>
#define N 200001
int v[N+N],n,s[N+N],t[N+N],pozitie,lungime;
void read()
{
int i,nrb,color;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&nrb,&color);
if(color==0)
v[i]=-nrb;
else
v[i]=nrb;
}
}
int max(int a,int b)
{
if(a>b)
return a;
return b;
}
void solve()
{
int sum_max,sum_c,ic,sf,poz_ic,i,n1;
n1=n;
for(i=0;i<n1-1;i++)
v[n++]=v[i];
sum_max=v[0];
sum_c=sum_max;
poz_ic=0;
ic=sf=0;
for(i=1;i<n;i++)
{
if(sum_c<0)
{
sum_c=v[i];
poz_ic=i;
}
else
sum_c+=v[i];
if(sum_max<sum_c)
{
sum_max=sum_c;
ic=poz_ic;
sf=i;
}
}
printf("%d %d %d\n",sum_max,ic+1,sf-ic+1);
}
int main()
{
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
read();
solve();
return 0;
}