Cod sursa(job #1837387)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 29 decembrie 2016 16:39:49
Problema Range minimum query Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int N,M,x,y,i,j,lg[100010],V[17][100010];
int main()
{
    f>>N>>M;
    lg[0]=-1;
    for(j=1;j<=N;++j)
    {
        f>>V[0][j];
        lg[j]=lg[j>>1]+1;
    }
    for(i=1;(1<<i)<=N;++i)
        for(j=1;j<=N-(1<<i)+1;++j)
            V[i][j]=min(V[i-1][j],V[i-1][j+(1<<(i-1))]);
    while(f>>x>>y) g<<min(V[lg[y-x+1]][x],V[lg[y-x+1]][y-(1<<lg[y-x+1])+1])<<'\n';
    return 0;
}