Cod sursa(job #2548287)

Utilizator marius004scarlat marius marius004 Data 16 februarie 2020 14:27:53
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>

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

const int NMAX = 400'005;
int n,v[NMAX],op,begin,end,maxx,s,SolB,SolE;

int main(){
    
    f >> n;
    
    for(int i = 1;i <= n;++i){
        f >> v[i] >> op;
        
        v[i] = (op == 0 ? -1 * v[i] : 1 * v[i]);
        
        v[n + i] = v[i];
    }
    
    begin = end = 1;
    maxx = -((1LL << 31) - 1);
    
    for(int i = 1;i <= 2 * n;++i){
        
        if(s < 0){
            s = v[i];
            begin = i;
        }else{
            s += v[i];
        }
        
        if(s > maxx){
            maxx = s;
            SolB = begin;
            SolE = i;
        }
    }
    
    if(SolB == n)
        g << maxx << ' ' << SolB << ' '  << SolE - SolB + 1;
    else
        g << maxx << ' ' << SolB % n << ' '  << SolE - SolB + 1;
    
    return 0;
}