Cod sursa(job #2168297)

Utilizator andreigeorge08Sandu Ciorba andreigeorge08 Data 14 martie 2018 10:20:57
Problema Range minimum query Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.35 kb
#import<fstream>
using namespace std;ifstream f("rmq.in");ofstream g("rmq.out");
int q[20][100005],i=2,j,x,y,n,m,lg[100005];main(){
for(f>>n>>m;i<=n+1;lg[i]=lg[i/2]+1,f>>q[0][i++-1]);
for(i=1;(1<<i)<=n;i++)for(j=1;j+(1<<i)-1<=n;j++)q[i][j]=min(q[i-1][j],q[i-1][j+(1<<(i-1))]);
while(m--)f>>x>>y,n=lg[y-x+1],g<<min(q[n][x],q[n][y+1-(1<<n)])<<'\n';}