Cod sursa(job #2118317)

Utilizator maria15Maria Dinca maria15 Data 30 ianuarie 2018 14:50:09
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>

using namespace std;

int n, i, st, dr, stm, drm, cul, v[200004], nr, S, maxim, S1, suma, minim, p;

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

int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>nr>>cul;
        if(cul == 0)
            v[i] = nr*(-1);
        else
            v[i] = nr;
        S+=v[i];
    }
    maxim = suma = v[1];
    for(i=2;i<=n;i++){
        if(suma >= 0)
            suma += v[i];
        else
            suma = v[i], p = i;
        if(suma > maxim){
            maxim = suma;
            st = p;
            dr = i;
        }
    }
    minim = suma = v[1];
    for(i=2;i<=n;i++){
        if(suma < 0)
            suma += v[i];
        else
            suma = v[i], p = i;
        if(minim > suma){
            minim = suma;
            stm = p;
            drm = i;
        }
    }
    S1 = S - minim;
    if(S1 > maxim)
        fout<<S1<<" "<<drm+1<<" "<<n-(drm - stm + 1);
    else
        fout<<maxim<<" "<<st<<" "<<dr-st+1;
    return 0;
}