Pagini recente » Cod sursa (job #1081420) | Cod sursa (job #658191) | Cod sursa (job #2242858) | Cod sursa (job #513855) | Cod sursa (job #2324105)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e5 + 5;
int n , m , p , k , t , x , y , lg[NMAX] , dp[30][NMAX] , i , v[NMAX] , l;
int main()
{
ifstream fin("rmq.in");
ofstream fout("rmq.out");
fin >> n >> m;
for(i = 1; i <= n; i++)fin >> dp[0][i];
for(p = 1; (1 << p) <= n; p++)
{
for(i = 1; i + (1<<p) - 1 <= n; i++)
{
dp[p][i] = min(dp[p - 1][i] , dp[p - 1][i + (1 << (p - 1))]);
}
}
k = 0;
for(i = 1 ; i <= 1e5; i++)
{
lg[i] = log(i) / log(2);
}
for(t = 1; t <= m; t++)
{
fin >> x >> y;
l = lg[y - x + 1] ;
fout<< min(dp[l][x] , dp[l][y - (1<<l) + 1]) << "\n";
}
return 0;
}