Pagini recente » Cod sursa (job #1392946) | Cod sursa (job #332959) | Cod sursa (job #894084) | Cod sursa (job #302504) | Cod sursa (job #2390920)
#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,nr3,j2,nr2;
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(v[j]!=v[i+n])
{
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,nr3=1;
else
suma2=suma2+v[i], nr2++;
if(suma2>maxi2)
maxi2=suma2, z2=j2, nr2=i;
}
if(maxi<maxis-maxi2)
{
maxi=maxis-maxi2;
z=nr2+1;
nr2=n-nr3;
}
else
nr-=z-1;
if(z>n)z=-n;
g<<maxi<<' '<<z<<' '<<nr;
return 0;
}