Cod sursa(job #2867790)
Utilizator | Data | 10 martie 2022 16:04:00 | |
---|---|---|---|
Problema | Range minimum query | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.34 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';}