Pagini recente » Cod sursa (job #2545566) | Cod sursa (job #2847442) | Sandbox (cutiuţa cu năsip) | Cod sursa (job #2551737) | Cod sursa (job #3164956)
#include <fstream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int nr,n,ok,i,stt1,stt2,lg1,lg2,dr2,st1,st2,poz,x,sum,smin,smax,s1,s2,maxx;
int main ()
{
fin>>n>>x>>ok;
if (ok==0)
x=-x;
nr+=ok;
sum=x;
s1=s2=x;
smin=smax=x;
poz=1;
stt1=stt2=dr2=1;
st1=st2=lg1=lg2=1;
maxx=x;
for (i=2; i<=n; i++)
{
fin>>x>>ok;
nr+=1-ok;
if (ok==0)
x=-x;
sum+=x;
if (x>maxx)
{
maxx=x;
poz=i;
}
if (s1+x<x)
{
s1=x;
stt1=i;
}
else
s1+=x;
if (s2+x>x)
{
s2=x;
stt2=i;
}
else
s2+=x;
if (s1>smax)
{
smax=s1;
st1=stt1;
lg1=i-st1+1;
}
if (s2<smin)
{
smin=s2;
st2=stt2;
dr2=i;
lg2=i-st2+1;
}
}
if (nr==n)
{
fout<<maxx<<" "<<poz<<" 1";
return 0;
}
dr2++;
if (dr2>n)
dr2=1;
if (smax>sum-smin||(smax==sum-smin&&st1<dr2))
fout<<smax<<" "<<st1<<" "<<lg1;
else
fout<<sum-smin<<" "<<dr2<<" "<<n-lg2;
return 0;
}