Pagini recente » Cod sursa (job #2848583) | Cod sursa (job #2565594) | Cod sursa (job #2180632) | Cod sursa (job #3197279) | Cod sursa (job #2733254)
#include <fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
const int NMAX=400005;
int v[NMAX];
int main()
{
int n,st,drmax,stmax,semn,i,drmin,stmin;
long long maxim,sum,minim,suma;
fin>>n;
fin>>v[1]>>semn;
if(semn==0)
v[1]*=-1;
maxim=sum=v[1];
st=stmax=drmax=1;
suma=v[1];
for(i=2;i<=n;i++)
{
fin>>v[i]>>semn;
if(semn==0)
v[i]*=-1;
suma+=v[i];
}
for(i=2;i<=n;i++)
{
sum+=v[i];
if(sum<v[i])
{
sum=v[i];
st=i;
}
if(maxim<sum)
{
maxim=sum;
drmax=i;
stmax=st;
}
}
st=stmin=drmin=1;
minim=sum=v[1];
for(i=2;i<=n;i++)
{
sum+=i;
if(sum>v[i])
{
sum=v[i];
st=i;
}
if(minim>sum){
minim=sum;
stmin=st;
drmin=i;
}
}
if(maxim>suma-minim)
fout<<maxim<<' '<<stmax<<' '<<drmax-stmax+1;
else
fout<<suma-minim<<' '<<stmin+1<<' '<<n-drmin+stmin-1;
return 0;
}