Pagini recente » Cod sursa (job #2265796) | Cod sursa (job #272108) | Cod sursa (job #2447510) | Cod sursa (job #3221455) | Cod sursa (job #1795449)
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
bool a;
int n,i,v[200010],l,p,u,s[200010],t[200010],l1,lmax,pmax,u1;
long long Max,rez,ss,smax,Max1;
int main()
{
f>>n;
for(i=1;i<=n;++i)
{
f>>v[i]>>a;
if(a==0)
v[i]=-v[i];
}
for(i=1;i<=n;++i)
{
s[i]=s[i-1]+v[i];
t[i]=max(t[i-1],s[i]);
}
for(i=1;i<=n;++i)
{
rez=t[i-1]+s[n]-s[i-1];
if(Max<rez)
{
Max=rez;
u=i;
}
}
Max1=Max;
u1=u;
while(Max>0)
{
if(u>n)
u=1;
l++;
Max-=v[u];
u++;
}
l1=l;
l=0;
for(i=1;i<=n;++i)
{
if(ss+v[i]>=v[i])
{
l++;
ss+=v[i];
}
else
{
p=i;
l=1;
ss=v[i];
}
if(smax<ss)
{
smax=ss;
lmax=l;
pmax=p;
}
}
if(Max1>smax)
{
g<<Max1<<" "<<u1<<" "<<l1;
}
else
{
g<<smax<<" "<<pmax<<" "<<lmax;
}
return 0;
}