Cod sursa(job #3236199)
Utilizator | Data | 26 iunie 2024 16:13:44 | |
---|---|---|---|
Problema | Range minimum query | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.35 kb |
#include <fstream>
using namespace std;const int N = 1e5 + 7;int n,q,g[18][300007],lg[N],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[i][j]=min(g[i-1][j],g[i-1][j+(1<<(i-1))]);while(q--){i>>l>>r;p=lg[r-l+1];o<<min(g[p][l],g[p][r-(1<<p)+1])<<"\n";}return 0;}