Cod sursa(job #2396273)
Utilizator | Data | 3 aprilie 2019 12:59:47 | |
---|---|---|---|
Problema | Range minimum query | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <iostream>
#incldue <fstream>
using namespace std;
ifstream fin ("rmq.in");
ofstream fout ("rmq.out");
int main()
{
fin >> N >> M;
for ( i = 1; i <= N; i++ )
{
fin >> v[ 0 ][ i ];
}
for ( logn = 1, k = 1; 1 + logn < N; logn <<= 1, k++ );
lg = 1;
for ( i = 1; i <= k; i++ )
{
s += lg;
lg <<= 1;
for ( j = 1; j + s <= N )
{
v[ i ][ j ] = max( v[ i - 1 ][ j ], v[ i - 1 ][ j + s ] );
}
}
for ( i = 1; i <= M; i++ )
{
fin >> x >> y;
}
return 0;
}