Cod sursa(job #2118325)

Utilizator Gl0WCula Stefan Gl0W Data 30 ianuarie 2018 14:57:17
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.4 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;
int 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;
        }
    }
    if(maxim < sum - minim){
        fout<<sum - minim<<" "<<uu + 1<<" "<<n - (uu - pp1 + 1);
    }
    else{
        fout<<maxim<<" "<<p1<<" "<<u - p1 + 1;
    }
    return 0;
}