Pagini recente » Cod sursa (job #1623893) | Cod sursa (job #797350) | Cod sursa (job #1362133) | Cod sursa (job #963693) | Cod sursa (job #2390908)
#include <fstream>
#include <climits>
using namespace std;
ifstream f("buline.in");
ofstream g ("buline.out");
int v[500005];
int i,j, maxi=INT_MIN,n,k,y,z,suma,suma2,o,nr,maxi2=INT_MIN,maxis,z2,nr2,j2;
int main()
{
f>>n;
for(i=1; i<=n; i++)
{
f>>v[i];
v[i+n]=v[i];
f>>o;
if(o==0)
{ v[n+i]=v[i]-2*v[i];
v[i]=v[i]-2*v[i];
}
}
for(i=1; i<n*2; i++)
{
if(suma<0)
suma=v[i], j=i;
else
suma=suma+v[i];
if(suma>maxi)
maxi=suma, z=j, nr=i;
}
for(i=1; i<=n; i++)
{
maxis=v[i]+maxis;
v[i]=v[i]-2*v[i];
if(suma2<0)
suma=v[i], j2=i;
else
suma2=suma2+v[i];
if(suma2>maxi2)
maxi2=suma2, z2=j, nr2=i;
}
if(maxi<maxis-maxi2)
{
maxi=maxis-maxi2;
z=nr2+1;
}
else
nr-=z-1;
if(z>n)z=-n;
g<<maxi<<' '<<z<<' '<<nr;
return 0;
}