Cod sursa(job #3165257)

Utilizator MrPuzzleDespa Fabian Stefan MrPuzzle Data 5 noiembrie 2023 18:47:52
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <algorithm>
#include <cmath>
#include <vector>
#include <climits>

#define DIM 200000
#define INF DIM * 10000 + 5

using namespace std;

//ifstream f("in.in");
//ofstream g("out.out");

ifstream f("buline.in");
ofstream g("buline.out");

int n,x,y,s=0;
int sum = -INF,sol = -INF,solst,soldr,st=1;
int sum2 = INF,sol2 = INF,solst2,soldr2,st2=1;

signed main()
{
    f>>n;
    for(int i=1;i<=n;i++){
        f>>x>>y;
        if(y == 0){
            x = -x;
        }
        s+=x;

        //cout<<x<<" ";

        if(sum+x >= x){
            sum+=x;
        }else{
            sum = x;
            st = i;
        }
        if(sum > sol){
            sol = sum;
            solst = st;
            soldr = i;
        }

        if(sum2+x < x){
            sum2+=x;
        }else{
            sum2 = x;
            st2 = i;
        }
        if(sum2 < sol2){
            sol2 = sum2;
            solst2 = st2;
            soldr2 = i;
        }

    }
    if(sol > s-sol2){
        g<<sol<<" "<<solst<<" "<<soldr-solst+1;
    }else{
        int len = soldr2-solst2+1;
        g<<s-sol2<<" "<<soldr2+1<<" "<<n-len;

        //cout<<solst2<<" "<<soldr2;
    }



    return 0;
}