Pagini recente » Cod sursa (job #932580) | Cod sursa (job #1468455) | Cod sursa (job #2806333) | Cod sursa (job #998923) | Cod sursa (job #2758240)
#include <bits/stdc++.h>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int n,i,j,lg[10005],d[1005][100015],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 <= 10015; 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;
}