Pagini recente » Cod sursa (job #1940376) | Cod sursa (job #1493820) | Cod sursa (job #1826921) | Cod sursa (job #1697503) | Cod sursa (job #1746806)
# include <iostream>
# include <fstream>
# include <algorithm>
# include <cmath>
using namespace std;
# define MAX_N 100000
# define LOG_N 18
int rmq[LOG_N][MAX_N];
int main() {
ifstream fin( "rmq.in" );
ofstream fout( "rmq.out" );
int n, m, i, j, a, b, l;
fin >> n >> m;
for ( i = 0; i < n; i ++ )
fin >> rmq[0][i];
# define s ( 1 << i )
for ( i = 1; s <= n; i ++ )
for ( j = 0; j <= n - s; j ++ )
rmq[i][j] = min( rmq[i - 1][j], rmq[i - 1][j + s / 2] );
for ( i = 0; i < m; i ++ ) {
fin >> a >> b;
a --;
b --;
l = log2( b - a + 1);
fout << min( rmq[l][a], rmq[l][b - ( 1 << l ) + 1] ) << '\n';
}
fin.close();
fout.close();
return 0;
}