Pagini recente » Cod sursa (job #807020) | Cod sursa (job #3259681) | Cod sursa (job #3289559) | Cod sursa (job #769351) | Cod sursa (job #3265490)
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int n, v[400001], b[400001];
int main()
{
f >> n;
for(int i=1; i<=n; i++)
f >> v[i] >> b[i];
for(int i=n+1; i<=n*2; i++)
v[i]=v[i-n], b[i]=b[i-n];
int l, lmin=0, p, pmin, sc=0, smax=0;
for(int i=1; i<=n*2; i++)
{
if(b[i]==1)
sc+=v[i];
else
sc-=v[i];
if(sc<=-1)
sc=0, l=0, p=i+1;
else
{
l++;
if(l>n)
sc=v[i], l=1, p=i;
if(sc<=-1)
sc=0, l=0, p=i+1;
if(sc>smax)
smax=sc, pmin=p, lmin=l;
else if(sc==smax)
{
if(p<pmin)
pmin=p, lmin=l;
else if(p==pmin)
if(l<lmin)
lmin=l;
}
}
}
if(pmin>n)
pmin-=n;
g << smax << " " << pmin << " " << lmin;
return 0;
}