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