Pagini recente » Cod sursa (job #688203) | Cod sursa (job #2654421) | Cod sursa (job #2241302) | Cod sursa (job #407309) | Cod sursa (job #2123038)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f ("buline.in");
ofstream g ("buline.out");
int v[200003],val,semn,n,sumaoptima,sumaint,poz1=1,lgsecv,i,poz2=1,s=0,p1=1,p2=1,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],poz1=i;
else
sumaint+=v[i];
if(sumaint>sumaoptima)
sumaoptima=sumaint,poz2=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],p1=i;
else
si+=v[i];
if(si>so)
so=si,p2=i;
}
if (s-so*(-1)>sumaoptima)
{
poz1=p2+1;
poz2=p1-1;
sumaoptima=s-so*(-1);
}
g<<sumaoptima<<" "<<poz1<<" ";
if(poz1>poz2)
g<<n-poz1+poz2+1;
else
g<<poz2-poz1+1;
}