Pagini recente » Cod sursa (job #1385452) | Cod sursa (job #843199) | Cod sursa (job #2199654) | Cod sursa (job #659123) | Cod sursa (job #2758242)
#include <bits/stdc++.h>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int n,i,j,lg[10005],d[100][1000010],a,q,x,y,m,s,k;
int main()
{
f >> n >> m;
for( i = 1; i <= n; i ++ )
{
f >> a;
d [0][i] = a;
}
lg [1] = 0;
for( i = 2; i <= 100010; i ++ ) lg [i] = lg [i / 2] + 1;
for( i = 1; i <= lg [n]; i ++ )
{
for( j = 1; j <= n - ( 1 << ( i ) ) + 1; j ++)
{
q = 1 << ( i - 1 );
d [i][j] = min ( d [i-1][j], d [i-1][j+q] );
}
}
for( i = 1; i <= m; i ++ )
{
f >> x >> y;
k = lg [ y - x ];
g << min ( d [k][x], d [k][y - ( 1 << k ) + 1]) << '\n';
}
return 0;
}