Cod sursa(job #2554063)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 22 februarie 2020 15:38:37
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const long long INF=(1<<32);
long long n, v[200100], x, suma, scrt, poz;
long long maxx=-INF, stM, drM;
long long minn= INF, stm, drm;

int main (){
     fin>>n;
     for(int i=1; i<=n; i++){
          fin>>v[i]>>x;
          if(x == 0) v[i]=-v[i];
          suma+=v[i];
     }

     for(int i=1; i<=n; i++){
          if(scrt + v[i] >= v[i])
               scrt+=v[i];
          else{
               scrt=v[i];
               poz=i;
          }
          if(maxx < scrt){
               maxx=scrt;
               stM=poz;
               drM=i;
          }
     }


     poz=0;
     scrt=0;
     for(int i=1; i<=n; i++){
          if(scrt+v[i] <= v[i])
               scrt+=v[i];
          else{
               scrt=v[i];
               poz=i;
          }
          if(minn > scrt){
               minn=scrt;
               stm=poz;
               drm=i;
          }
     }
     suma-=minn;


     if(maxx > suma)
          fout<<maxx<<" "<<stM<<" "<<drM-stM+1;
     else
          fout<<suma<<" "<<drm+1<<" "<<n-drm+stm-1;

     return 0;
}