Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.48 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <fstream>
  4. using namespace std;
  5. ifstream f("rmq.in");
  6. ofstream g("rmq.out");
  7. int d[100100][16],i,j,k,a,b,m,p,n;
  8. int main()
  9. {
  10.     f>>n>>m;
  11.     for(i=1;i<=n;i++)
  12.         f>>d[i][0];
  13.     p=(int)log2(n);
  14.     for(i=1;i<=n;i++)
  15.     for(j=1;i+(1<<j)<=n;j++)
  16.     d[i][j]=min(d[i][j-1],d[i+(1<<(j-1))][j-1]);
  17.     for(i=1;i<=m;i++)
  18.     {
  19.         f>>a>>b;
  20.         k=log2(b-a-1);
  21.         g<<min(d[a][k],d[b-(1<<k)+1][k])<<'\n';
  22.     }
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement