Pagini recente » Cod sursa (job #2040541) | Cod sursa (job #2027745) | Cod sursa (job #5424) | Cod sursa (job #2401804) | Cod sursa (job #1625403)
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int i,j,p,P;
int a[400001];
int n,Nr,grad;
long long s1,s2,s=0;
int Max=-9999999,Min=99999999;
int lm,pm,lM,pM;
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>Nr>>grad;
a[i]=Nr*(grad*2-1);
s+=a[i];
}
s1=a[1];lM=1;pM=1;P=1;
s2=a[1];lm=1;pm=1;p=1;
Max=s;
Min=s;
for(i=2;i<=n;i++)
{
if(s1+a[i]>=a[i])
{
s1+=a[i];
}
else
{
s1=a[i];P=i;
}
if(s1>Max)
{
Max=s1;
lM=i;
pM=P;
}
if(s+a[i]<a[i])
{
s2+=a[i];
}
else
{
s2=a[i];p=i;
}
if(s2<Min)
{
Min=s2;
lm=i;
pm=p;
}
}
if(s-Min<Max)
{
g<<Max<<" "<<pM<<" "<<lM-pM+1;
}
else
{
g<<s-Min<<" "<<lm+1<<" "<<n-lm+pm-1;
}
return 0;
}