Cod sursa(job #2849815)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 15 februarie 2022 20:17:28
Problema Range minimum query Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.39 kb
#include <bits/stdc++.h>
using namespace std;ifstream fin("rmq.in");ofstream fout("rmq.out");int rmq[100005][17],n,q,st,dr,ex;int main(){fin>>n>>q;for(int i=1;i<=n;i++)fin>>rmq[i][0];for(int j=1;(1<<j)<=n;j++)for(int i=1,ii;(ii=i+(1<<(j-1)))<=n;i++)rmq[i][j]=min(rmq[i][j-1],rmq[ii][j-1]);while(q--){fin>>st>>dr;ex=(int)log2(dr-st+1);fout<<min(rmq[st][ex],rmq[dr-(1<<ex)+1][ex])<<"\n";}return 0;}