Pagini recente » Cod sursa (job #2526680) | Cod sursa (job #2672884) | Cod sursa (job #1356099) | Cod sursa (job #589895) | Cod sursa (job #3275866)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int t[6000005];
int main()
{
long long int n,S=-2e9,i,j=1,Smax=-2e14,Smin=2e14,finish,start,finish1,start1,val,semn;
fin>>n;
for(i=1;i<=n;++i)
{
fin>>val>>semn;
if(semn==0)
val*=-1;
t[i]=val;
}
S=-2e14;
for(i=1;i<=n;i++)
{
if(S<0)
{
S=t[i];
j=i;
}
else
{
S=S+t[i];
}
if(S>Smax)
{
Smax=S;
finish=i;
start=j;
}
}
S=2e14;
for(i=1;i<=n;i++)
{
if(S>0)
{
S=t[i];
j=i;
}
else
{
S=S+t[i];
}
if(S<Smin)
{
Smin=S;
finish1=i;
start1=j;
}
//cout<<S;
}
S=0;
for(i=1;i<=n;++i)
S+=t[i];
if(Smax>=S-Smin)
{
fout<<Smax<<' '<<start<<' '<<finish;
}
else
fout<<S-Smin<<' '<<finish1+1<<' '<<n-(finish1-start1+1);
}