Pagini recente » Cod sursa (job #2017202) | Cod sursa (job #608664) | Cod sursa (job #2019538) | Istoria paginii runda/1concurs1/clasament | Cod sursa (job #2010528)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int N, M, k;
vector<vector<int>>D;
int main()
{
fin >> N >> M;
int n = (int)log2(N);
D.resize(n + 1, vector<int>(N + 1));
for (int i = 1; i <= N; ++i)
fin >> D[0][i];
for (int i = 1; i <= n; ++i)
for (int j = 1; j + (1 << i) - 1 <= N; ++j)
D[i][j] = min(D[i - 1][j], D[i - 1][j + (1 << (i - 1))]);
for(int x, y; M; --M)
{
fin >> x >> y;
k = (int)log2(y - x);
fout << min(D[k][x], D[k][y - (1 << k) + 1]) << "\n";
}
}