Cod sursa(job #2516233)

Utilizator bluestorm57Vasile T bluestorm57 Data 30 decembrie 2019 19:15:42
Problema Buline Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("buline.in");
ofstream g("buline.out");

const int NMAX = 4e5 + 10;
const int inf = (1 << 30);
int v[NMAX],n;

int main(){
    int i,x,y;
    f >> n;
    for(i = 1 ; i <= n ; i++){
        f >> x >> y;
        if(!y)
            x = -x;

        v[i] = v[n + i] = x;

    }

    int lo = 1, hi = 1, ans = 0, cn = n * 2, bestsum = -inf, beg, sum;

    for(i = 1 ; i <= cn ; i++){
        if(sum < 0)
            sum = v[i], beg = i;
        else
            sum += v[i];

        while(i - beg + 1 > n)
            sum -= v[beg++];

        if(bestsum < sum){
            bestsum = sum;
            lo = beg;
            hi = i;
        }

    }
    g << bestsum << " " << lo << " " << hi - lo + 1;

    return 0;
}