Pagini recente » Cod sursa (job #2543382) | Cod sursa (job #1242459) | Cod sursa (job #2526297) | Cod sursa (job #277471) | Cod sursa (job #3165039)
#include <fstream>
#include <climits>
#define DIM 2000001
using namespace std;
ifstream fin ("buline.in");
ofstream fout("buline.out");
int n,s,x,i,u,p,j,sumopt,minim,m,l,pozmin;
int v[2*DIM];
bool alb;
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x>>alb;
if(alb)
v[i]=x;
else
v[i]=-x;
}
for(i=1;i<=n-1;i++)
v[n+i]=v[i];
m=2*n-1;
for(i=1;i<=m;i++)
{
v[i]=v[i]+v[i-1];
if(v[i]-minim>sumopt)
{
sumopt=v[i]-minim;
p=pozmin+1;
u=i;
l=u-p+1;
}
else if(v[i]-minim==sumopt && i-pozmin>l)
{
l=i-pozmin;
p=pozmin+1;
u=i;
}
if(v[i]<minim)
{
minim=v[i];
pozmin=i;
}
}
fout<<sumopt<<" ";
if(p>n)
fout<<p-n;
else
fout<<p;
fout<<" "<<l;
return 0;
}