Cod sursa(job #3161159)

Utilizator vladorovOroviceanu Vlad vladorov Data 25 octombrie 2023 22:21:58
Problema Range minimum query Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

void clear_q(priority_queue<int, deque<int>, greater<int>>& q){
    while(!q.empty()){
        q.pop();
    }
}

int main() {
    ifstream fin("rmq.in");
    ofstream fout("rmq.out");

    int lim; fin>>lim;
    int nrq; fin>>nrq;

    vector<int> list(lim);
    for(int i=0; i<lim; i++){
        fin>>list[i];
    }

    priority_queue<int, deque<int>, greater<int>> rmq;
    for(int i=0; i<nrq; i++){
        int p1, p2; fin>>p1>>p2;

        p1--; p2--;
        for(int j=p1; j<=p2; j++){
            rmq.push(list[j]);
        }

        fout<<rmq.top()<<endl;
        clear_q(rmq);
    }
}