Pagini recente » Monitorul de evaluare | Cod sursa (job #2511255) | Cod sursa (job #2653727) | Borderou de evaluare (job #1088421) | Cod sursa (job #2390885)
#include <fstream>
#include <climits>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int v[200002],b[200002];
int main()
{
int n,i,j,x,y,spar=0,smax=INT_MIN,li=1,lf=1,pozpar=1,z=0,w=0,lun=1;
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x>>y;
v[++z]=x;
b[++w]=y;
}
for(i=1;i<=n;i++)
{
v[++z]=v[i];
b[++w]=b[i];
}
for(i=1;i<=z;i++)
{
if(spar<0)
{
if(b[i]==1)
spar=v[i];
else
spar=-v[i];
if(i>n)
pozpar=n-i;
else
pozpar=i;
}
else
{
if(b[i]==1)
spar+=v[i];
else
spar-=v[i];
}
if(spar>smax&&i-pozpar+1<=n)
{
smax=spar;
li=pozpar;
lun=i-pozpar+1;
}
}
fout<<smax<<" "<<li<<" "<<lun;
return 0;
}