Cod sursa(job #2116085)

Utilizator Gl0WCula Stefan Gl0W Data 27 ianuarie 2018 12:17:09
Problema Buline Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.52 kb
#include <fstream>

using namespace std;

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

int n, v[200004], s, p, x, p1, u, s1, ss, ss1, pp1, uu, minim = 10005, pp;
long long sum, maxim = -10005;
int main()
{
    fin>>n;
    for(int i = 1; i <= n; i++){
        fin>>v[i]>>x;
        if(x == 0){
            v[i] *= -1;
        }
        sum += v[i];
    }
    for(int i = 1; i <= n; i++){
        if(i == 1){
            s = v[i];
            p = i;
        }
        else{
            s1 = v[i] + s;
            if(s1 >= v[i]){
                s = s1;

            }
            else{
                s = v[i];
                p = i;
            }
        }
        if(maxim < s){
            maxim = s;
            u = i;
            p1 = p;
        }
    }
    for(int i = 1; i <= n; i++){
        if(i == 1){
            ss = v[i];
            pp = i;
        }
        else{
            ss1 = v[i] + ss;
            if(ss1 <= v[i]){
                ss = ss1;

            }
            else{
                ss = v[i];
                pp = i;
            }
        }
        if(minim > ss){
            minim = ss;
            uu = i;
            pp1 = pp;
        }
    }
    long long kkk = sum - minim;
    if(maxim >= kkk || kkk == 0){
        fout<<maxim<<" ";
        int numere = p1 - u + 1;
        fout<<p1<<" "<<numere;
    }
    else{
        fout<<kkk<<" ";
        int numere = n - (pp1 - uu + 1);
        fout<<uu + 1<<" "<<numere;
    }
    return 0;
}