Cod sursa(job #3165495)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 6 noiembrie 2023 12:12:53
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <fstream>
using namespace std;
int n, v[200010], sum, sign, sol, maximSir, L, poz, minimMid, sol1L, sol1P, sol2L, sol2P;
int main () {
    ifstream fin ("buline.in");
    ofstream fout("buline.out");
    fin>>n;
    for (int i=1;i<=n;i++){
        fin>>v[i]>>sign;
        if (!sign){
            v[i]=-v[i];
        }
        sum+=v[i];
    }
    sol=maximSir=-2000000000;
    L=0;
    poz=1;
    for (int i=1;i<=n;i++){
        if (sol+v[i]>=v[i]){
            sol=sol+v[i];
            L++;
        }
        else{
            sol=v[i];
            poz=i;
            L=1;
        }
        if (sol>maximSir){
            maximSir=sol;
            sol1L=L;
            sol1P=poz;
        }
    }
    sol=minimMid=2000000000;
    L=0;
    poz=1;
    for (int i=1;i<=n;i++){
        if (sol+v[i]<=v[i]){
            sol=sol+v[i];
            L++;
        }
        else{
            sol=v[i];
            poz=i;
            L=1;
        }
        if (sol<minimMid){
            minimMid=sol;
            sol2L=L;
            sol2P=poz;
        }
    }
    if (maximSir>=sum-minimMid){
        fout<<maximSir<<" "<<sol1P<<" "<<sol1L;
    }
    else{
        fout<<sum-minimMid<<" "<<sol2P+sol2L<<" "<<n-sol2L;
    }
    return 0;
}