Pagini recente » Cod sursa (job #2635765) | Cod sursa (job #2507880) | Cod sursa (job #461455) | Cod sursa (job #294903) | Cod sursa (job #2123061)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f ("buline.in");
ofstream g ("buline.out");
int v[200003],val,semn,n,sumaoptima,sumaint,pi,i,s=0,p1=1,p2=1,poz_int,li,lf,li1,lf1,si=0,so=-2000000000;
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i]>>semn;
if(semn==0)
v[i]=v[i]*(-1);
}
//subsecventa de suma maxima
for (i=1;i<=n;i++)
{
if (sumaint < 0)
sumaint = v[i], poz_int = i;
else
sumaint += v[i];
if (sumaoptima < sumaint)
sumaoptima = sumaint, li = poz_int, lf = i;
}
//subsecventa de suma minima
p1=p2=1;
for(i=1;i<=n;i++)
{
s+=v[i];
v[i]=v[i]*(-1);
if(si<0)
si=v[i],pi=i;
else
si+=v[i];
if(si>so)
so=si,li1=pi,lf1=i;
}
if (s-so*(-1)>sumaoptima)
{
li=lf1+1;
lf=li1-1;
sumaoptima=s-so*(-1);
}
g<<sumaoptima<<" "<<li<<" ";
if(li>lf)
g<<n-li+lf+1;
else
g<<lf-li+1;
}