Cod sursa(job #2548552)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 16 februarie 2020 19:50:35
Problema Buline Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <iostream>
#include <fstream>
#define INF 999999999

using namespace std;

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

long long n, v[200005], x;
long long suma, scrt, pcrt, poz;
long long maxx=-INF, smax, dmax;
long long minn= INF, smin, dmin;

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];
     }

     scrt=v[1];
     pcrt=1;
     for(int i=2; i<=n; i++){
          if(scrt + v[i] >= v[i])
               scrt+=v[i];
          else{
               scrt=v[i];
               pcrt=i;
          }


          if(maxx < scrt){
               maxx=scrt;
               smax=poz;
               dmax=i;
          }
     }

     scrt=v[1];
     pcrt=1;
     for(int i=2; i<=n; i++){
          if(scrt + v[i] <= v[i])
               scrt+=v[i];
          else{
               scrt=v[i];
               poz=i;
          }

          if(scrt < minn){
               minn=scrt;
               smin=poz;
               dmin=i;
          }
     }

     if(maxx > suma - minn)
          fout<<maxx<<" "<<smax<<" "<<dmax-smax+1;
     else
          fout<<suma-minn<<" "<<dmin+1<<" "<<n-dmin+smin-1;

     return 0;
}