Pagini recente » Cod sursa (job #1446784) | Cod sursa (job #1937269) | Monitorul de evaluare | Cod sursa (job #309080) | Cod sursa (job #2065053)
#include <fstream>
#include <limits.h>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int v[400001],n,i,k,s,l,p,smax,l1,p1;
int main()
{
f>>n;
smax=INT_MIN;
s=-1;
for(i=1;i<=n;i++)
{
f>>v[i]>>k;
v[i]+=2*(k-1)*v[i];
v[i+n]=v[i];
if(s>=0)
{
s+=v[i];
l++;
}
else
{
p=i;
s=v[i];
l=1;
}
if(smax<s)
{
smax=s;
p1=p;
l1=l;
}
}
for(i=n+1;i<=2*n;i++)
{
if(p==i-n)
{
s-=v[i];
p++;
l--;
}
if(s>=0)
{
s+=v[i];
l++;
}
else
{
s=v[i];
l=1;
p=i;
}
if(smax<s)
{
smax=s;
p1=p;
l1=l;
}
}
g<<smax<<" "<<p1<<" "<<l1;
return 0;
}