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