Cod sursa(job #1267196)

Utilizator gedicaAlpaca Gedit gedica Data 19 noiembrie 2014 17:29:42
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#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;
}