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