/Static RMQ

<Problem>

https://judge.yosupo.jp/problem/staticrmq
              #include <iostream>
        #include <cmath>
        using namespace std;
        
        int main() {
          int n, q;
          cin >> n >> q;
        
          int* arr = new int[n + 1]{ 0 };
        
          for (int i = 1; i <= n; i++) {
            cin >> arr[i];
          }
        
          int st_size = (log(n) / log(2)) + 1;
          int** st = new int* [st_size];
          for (int i = 0; i < st_size; i++) {
            st[i] = new int[n + 1]{ 0 };
          }
        
          for (int i = 1; i <= n; i++) st[0][i] = arr[i];
        
          int lg = log(n) / log(2);
        
          for (int j = 1; j <= lg; j++) {
            for (int i = 1; i <= n - (1 << j) + 1; i++) {
              st[j][i] = min(st[j - 1][i], st[j - 1][i + (1 << (j - 1))]);
            }
          }
        
          while (q--) {
            int l, r;
            cin >> l >> r;
        
            l = l + 1;
            r = r;
        
            int len = (r - l + 1);
            int k = log(len) / log(2);
        
            int res = min(st[k][l], st[k][r - (1 << k) + 1]);
            cout << res << endl;
          }
        
          return 0;
        }