Pagini recente » Cod sursa (job #1312357) | Cod sursa (job #835925) | Cod sursa (job #2562261) | Cod sursa (job #1707129) | Cod sursa (job #1267196)
#include <fstream>
using namespace std;
const int NMAX= 200000, inf= 10001;
ifstream in( "buline.in" );
ofstream out( "buline.out" );
int maxi=-inf, mini=0;
int v[NMAX+1];
int saux1, saux2, lung1, lung2;
int b, f, b1, f1;
int main()
{
int N;
in >> N;
int x, y, S= 0;
for( int i=1; i<=N; ++i )
{
in >> x >> y;
v[i]=x*(2*y-1);
S+= v[i];
}
for( int i= 1; i<N; ++i )
{
if( saux1<0 ) {
saux1= 0;
lung1= i;
}
if( saux2>0 ) {
saux2= 0;
lung2= i;
}
saux1+= v[i];
saux2+= v[i];
if ( saux1>maxi )
{
maxi= saux1;
b= lung1;
f= i-lung1+1;
}
if ( saux2<mini )
{
mini= saux2;
b1= lung2;
f1= i-lung2+1;
}
}
if( maxi>S-mini ) out << maxi << " " << b << " " << f;
else out << S-mini << " " << b1+f1 << " " << N-f1;
return 0;
}