Pagini recente » Cod sursa (job #1667812) | Cod sursa (job #2645591) | Cod sursa (job #1741012) | Cod sursa (job #2334687) | Cod sursa (job #3169238)
#include <fstream>
#include <deque>
#define INF 0x3FFFFFFF
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n;
int v[2 * 200000 + 5];
struct sss{
int s;
int l;
int i;
}smax,max_,smin,min_;
int p,l;
int pm,lm;
int stot;
int main()
{
fin>>n;
smax.s = -INF;
smin.s = INF;
for(int i=1;i<=n;i++)
{
int k;
fin>>v[i]>>k;
if(k==0)
v[i]*=-1;
stot+=v[i];
if(smax.s + v[i] < v[i])
smax={v[i],1,i};
else
smax={smax.s + v[i],smax.l+1,smax.i};
if(smin.s + v[i] > v[i])
smin={v[i],1,i};
else
smin={smin.s + v[i],smin.l+1,smin.i};
if(max_.s<smax.s)
max_ =smax;
if(min_.s>smin.s)
min_ = smin;
}
if(max_.s >= stot-min_.s)
{
fout<<max_.s<<' '<<max_.i<<' '<<max_.l;
return 0;
}
fout<<stot-min_.s<<' '<<min_.i + min_.l<<' '<<n - min_.l;
}