Cod sursa(job #3346105)

Utilizator EduardDobrescuEduard Dobrescu Cristian Gabriel EduardDobrescu Data 12 martie 2026 16:49:16
Problema Buline Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int v[200001],x[200001],z[200001],st,dr,i,j,n,stCurent,c,minim;
long long s, maxim;
int main()
{
   fin>>n;
   j=0;
   for(i=1;i<=n;i++){
       fin>>v[i]>>c;
       if(c==1)
       x[i]=v[i];
       else
       x[i]=-v[i];
       z[++j] += v[i];
       }

   s = x[1];
   stCurent = 1;
   maxim = s;
   st = 1;
   dr = 1;

   for (i=2;i<=n;i++) {
        if (s + x[i] >= x[i])
            s = s + x[i];
        else {
            s = x[i];
            stCurent = i;
    }
        if (s > maxim) {
        maxim = s;
        dr = i;
        st = stCurent;
    }
}
   int st1=st;
   int dr1=dr;


   s = x[1];
   stCurent = 1;
   minim = s;
   st = 1;
   dr = 1;

 for (i=2;i<=n;i++) {
        if (s + x[i] <= x[i])
            s = s + x[i];
        else {
            s = x[i];
            stCurent = i;
    }
        if (s < minim) {
        minim = s;
        dr = i;
        st = stCurent;
    }
}

int ver = z[n]-z[dr]+z[st-1];

if(ver>maxim)
fout<<maxim<<" "<<st1<<" "<<dr1;
else
fout<<ver<<" "<<st<<" "<<dr;
return 0;
}