Pagini recente » Cod sursa (job #442209) | Rating Ivanciuc Aurica (euuuaura) | Cod sursa (job #1873180) | Profil Georgiana1904 | Cod sursa (job #1296959)
#include <bits/stdc++.h>
using namespace std;
int x[300000], L, R, s, d, q, n, i, p;
int query(int nod, int l, int r)
{
if(s <= l && d >= r)
return x[nod];
if(d < l || r < s)
return 0;
int m = (l + r) / 2;
return max(query(2 * nod, l, m), query(2 * nod + 1, m + 1, r));
}
int main()
{
freopen("saracsaurege.in", "r", stdin);
freopen("saracsaurege.out", "w", stdout);
scanf("%d%d", &n, &q);
for(p = 1; ; p <<= 1)
if(p>=n)
break;
p--;
for(i = 1; i <= n; i++)
scanf("%d", &x[i + p]);
for(i = p; i; i--)
x[i] = max(x[2 * i], x[2 * i + 1]);
for(; q; q--)
{
scanf("%d%d", &s, &d);
printf("%d\n", query(1, 1, p + 1));
}
return 0;
}