Pagini recente » Cod sursa (job #1792363) | Cod sursa (job #2180174) | Cod sursa (job #1902330) | Cod sursa (job #2941254) | Cod sursa (job #2733269)
#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+=v[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)<<' '<<drmin+1<<' '<<n+stmin-drmin-1;
return 0;
}