Pagini recente » Cod sursa (job #2145411) | Cod sursa (job #2692245) | Cod sursa (job #1212303) | Cod sursa (job #850062) | Cod sursa (job #2323122)
#include <bits/stdc++.h>
#define pb push_back
#define sz size()
using namespace std ;
const int NR = 100001 ;
ifstream f ("rmq.in") ;
ofstream g ("rmq.out") ;
vector < int > v [ NR ] ;
int level [ NR ] , last ;
const int NMAX = 10000 ;
const int LOGNMAX = 11;
void rmq_sol1 ( int rmq [ NMAX ][ NMAX ] , int v [ NMAX ] , int n )
{
int i , j ;
for ( i = 1 ; i <= n ; ++ i )
rmq [ i ][ i ] = v [ i ] ;
for ( i = 1 ; i < n ; ++ i )
for ( j = i + 1; j <= n ; ++ j )
rmq [ i ][ j ] = min ( rmq [ i ][ j - 1 ] , v [ j ] ) ;
}
int query_sol1 ( int rmq [ NMAX ][ NMAX ] , int v [ NMAX ] , int n , int a , int b )
{
if ( a > b ) swap ( a , b ) ;
return rmq [ a ][ b ] ;
}
int main ()
{
int n , q ; f >> n >> q ;
int v[ NMAX ] = { 0} ;
int rmq1 [ NMAX ][ NMAX ] = {0} ;
for ( int i = 1 ; i <= n ; ++ i ) f >> v[ i ];
rmq_sol1 ( rmq1 , v , n ) ;
while ( q -- )
{
int a , b ; f >> a >> b ;
g << query_sol1 ( rmq1 , v , n , a , b ) << "\n" ;
}
}