Pagini recente » Statistici Bosneag Alexandru (AlexBosneag26) | Cod sursa (job #91145) | Cod sursa (job #603546) | Cod sursa (job #3158805) | Cod sursa (job #1266639)
#include <fstream>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int d[20][100005], lg[100005];
int n, m, x, y, i, j, k;
int min(int x, int y)
{
if(x <= y)
return x;
return y;
}
int main()
{
f >> n >> m;
lg[1] = 0;
for(i = 2; i<=n; i++)
lg[i] = lg[i / 2] + 1;
for(i = 1; i<=n; i++)
f >> d[0][i];
for(i = 1; i<= lg[n]; i++)
{
for(j = 1; j<= n- (1<<(i - 1)); j++)
d[i][j] = min(d[i- 1][j], d[i - 1][j + (1<<i-1)]);
}
/*for(i = 1; i<= lg[n]; i++)
{
for(j = 1; j<=n - (1<<(i-1)); j++)
g << d[i][j] << ' ';
g << '\n';
}*/
for(i = 1; i<=m; i++)
{
f >> x >> y;
k = lg[y - x + 1];
g << min(d[k][x], d[k][y- (1<<k) + 1]) << '\n';
}
return 0;
}