Pagini recente » Cod sursa (job #1350292) | Cod sursa (job #2842560) | Cod sursa (job #1149354) | Cod sursa (job #122277) | Cod sursa (job #2867768)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream in ("fact.in");
ofstream out ("fact.out");
int v[100001];
int rmq[20][100001];
int llog[100001];
int rasp (int st, int dr)
{
int poz = llog[dr - st + 1];
return min(rmq[poz][st], rmq[poz][dr - (1<<poz) + 1]);
}
main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, q;
cin >> n >> q;
for (int i = 1;i<=n;++i)
cin >> v[i];
llog[1] = 0;
for (int i = 2;i<=n;++i)
llog[i] = llog[i / 2] + 1;
for (int i = 1;i<=n;++i)
rmq[0][i] = v[i];
for (int k = 1, pow = 2;pow <= n;pow<<=1, ++k)
for (int i = 1;i<= n - pow + 1;++i)
rmq[k][i] = min(rmq[k - 1][i], rmq[k - 1][i + (pow>>1)]);
for (int t = 1;t<=q;++t)
{
int a, b;
cin >> a >> b;
cout << rasp (a, b) << '\n';
}
return 0;
}