Cod sursa(job #3236228)
Utilizator | Data | 26 iunie 2024 16:55:03 | |
---|---|---|---|
Problema | Range minimum query | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.33 kb |
#include <fstream>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int a[17][1<<17],n,q,i,j,k,l,r;
main() {
f>>n>>q;
for(; i<n; i++)f>>a[0][i];
while(j++<16){
for(i=0; i<n; i++)a[j][i]=min(a[j-1][i],a[j-1][i+(1<<j-1)]);
}
for(; f>>l>>r; k=__lg(r-l+1),g<<min(a[k][l-1],a[k][r-(1<<k)])<<'\n');
}