Pagini recente » Cod sursa (job #855627) | Cod sursa (job #2123053) | Cod sursa (job #2486209) | Istoria paginii runda/aminceputdeja/clasament | Cod sursa (job #3122553)
#include<bits/stdc++.h>
using namespace std;
ifstream F("rmq.in");
ofstream G("rmq.out");
int n,i,j,k,a[100000],b[100000][20];
int main()
{
for(F>>n>>j;i<n;b[i][0]=i,F>>a[i++]);
for(j=1;(1<<j)<=n;++j)
for(i=0;i+(1<<j)-1<n;b[i][j]=a[b[i][j-1]]<a[b[i+(1<<(j-1))][j-1]]?b[i][j-1]:b[i+(1<<(j-1))][j-1],++i);
for(;F>>i>>j;k=(int)log2(j-i+1),G<<min(a[b[i-1][k]],a[b[j-(1<<k)][k]])<<'\n');
return 0;
}