Cod sursa(job #3322878)

Utilizator mihiboiBacis Mihai-Cristian mihiboi Data 16 noiembrie 2025 08:50:36
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");

int n, x, c, v[200000], st, stmax, drmax, stmin, drmin;
long long s, smax, smin = 2000000000, sum;

int main() {
    fin >> n;
    for(int i = 1; i <= n; i++) {
        fin >> x >> c;
        if(c == 1)
            v[i] = x;
        else
            v[i] = -x;
        sum += v[i];
    }
    
    s = v[1];
    for (int i = 2; i <= n; i++) {
        if (v[i] > s + v[i]) {
            s = v[i];
            st = i;
        } 
        else
            s = s + v[i];
        if (s > smax) {
            smax = s;
            stmax = st;
            drmax = i;
        }
    }
    
    s = v[1];
    for (int i = 2; i <= n; i++) {
        if (v[i] < s + v[i]) {
            s = v[i];
            st = i;
        } 
        else
            s = s + v[i];
        if (s < smin) {
            smin = s;
            stmin = st;
            drmin = i;
        }
    }


    if(smax > sum - smin)
        fout << smax << ' ' << stmax << ' ' << drmax - stmax + 1;
    else
        fout << sum - smin << ' ' << drmin + 1 << ' ' << (n - drmin) + (stmin - 1);
    return 0;
}