Cod sursa(job #2836973)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 21 ianuarie 2022 12:35:55
Problema Range minimum query Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.42 kb
#include <bits/stdc++.h>
using namespace std;ifstream fin("rmq.in");ofstream fout("rmq.out");int rmq[100005][18],n,q,x,y;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;i<=n;i++){rmq[i][j]=rmq[i][j-1];if(i+(1<<(j-1))<=n)rmq[i][j]=min(rmq[i][j],rmq[i+(1<<(j-1))][j-1]);}int x,y,z;while(q--){fin>>x>>y;z=(int)log2(y-x+1);fout<<min(rmq[x][z],rmq[y-(1<<z)+1][z])<<'\n';}return 0;}