Cod sursa(job #1184967)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 14 mai 2014 18:48:21
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>

using namespace std;

ifstream fin( "buline.in" );
ofstream fout( "buline.out" );

const int nmax = 200000;
int v[ 2 * nmax + 1 ];

int main() {
    int n, sol, y, x, s, p, l;
    fin>>n;
    for( int i = 1; i <= n; ++ i ) {
        fin>>y>>x;
        if ( x == 0 ) {
            v[ i ] = v[ i + n ] = -y;
        } else {
            v[ i ] = v[ i + n ] = y;
        }
    }
    s = sol = -1<<30;
    x = y = 0;
    for( int i = 1; i <= 2 * n; ++ i ) {
        ++ y;
        s += v[ i ];
        if ( s <= 0 || y > n ) {
            s = v[ i ]; x = i; y = 1;
        }
        if ( s > sol ) {
            sol = s;
            p = x;
            l = y;
        }
    }
    fout<<sol<<' '<<p<<' '<<l<<'\n';
    fin.close();
    fout.close();
    return 0;
}