Cod sursa(job #3306062)

Utilizator mbazacliuMihnea Gabriel Bazacliu mbazacliu Data 7 august 2025 11:13:15
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <fstream>
#include <climits>
using namespace std;

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

int main(){
    int n; int num, culoare;
    fin >> n;

    int stot = 0;
    int ssecvx = 0, secvix;
    int ssmax = INT_MIN, smaxi, smaxj;
    int ssecvn = 0, secvin;
    int ssmin = INT_MAX, smini, sminj;

    for (int i = 1; i <= n; i++){
        fin >> num >> culoare; num *= -(!culoare)*2+1;
        stot += num;

        if (ssecvx < 0){
            ssecvx = 0;
            secvix = i;
        } ssecvx += num;

        if (ssecvx > ssmax){
            ssmax = ssecvx;
            smaxi = secvix;
            smaxj = i;
        }

        if (ssecvn > 0){
            ssecvn = 0;
            secvin = i;
        } ssecvn += num;

        if (ssecvn < ssmin){
            ssmin = ssecvn;
            smini = secvin;
            sminj = i;
        }
    }

    if (smini != 1 || sminj != n){
        if (stot - ssmin > ssmax || (stot - ssmin == ssmax && (sminj%n+1 < smaxi))){
            ssmax = stot - ssmin;
            smaxi = sminj%n+1;
            smaxj = (smini+n+n-2)%n+1;
        }
    }

    fout << ssmax << " " << smaxi << " " << (smaxj+n-smaxi+n)%n+1;

    return 0;
}