Pagini recente » Cod sursa (job #985243) | Cod sursa (job #2312700) | Cod sursa (job #3184682) | Cod sursa (job #2887596) | Cod sursa (job #3134193)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
#include <cmath>
//std::ifstream fin("C:\\Users\\DelMX\\OneDrive\\Sharing\\tema-sd-3\\rmq.in");
//std::ofstream fout("C:\\Users\\DelMX\\OneDrive\\Sharing\\tema-sd-3\\rmq.out");
std::ifstream fin("rmq.in");
std::ofstream fout("rmq.out");
int v[100000][17];
int main() {
int n, m, x, y;
fin >> n >> m;
for (int i = 0; i < n; ++i) {
fin >> x;
v[i][0] = x;
}
for (int i = 1; pow(2, i) < n; ++i) {
for (int j = 0; j + (pow(2,(i - 1))) < n; ++j) {
v[j][i] = std::min(v[j][i - 1], v[j + (1 << (i - 1))][i - 1]);
}
}
for (int i = 0; i < m; ++i) {
fin >> x >> y;
int log = floor(log2(y - x + 1));
// std::cout << std::min(v[x - 1][log], v[y - (1 << log)][log]) << "\n";
fout << std::min(v[x - 1][log], v[y - (1 << log)][log]) << "\n";
}
return 0;
}