Pagini recente » Cod sursa (job #3167429) | Cod sursa (job #1075450) | Cod sursa (job #3001033) | Cod sursa (job #36389) | Cod sursa (job #3278259)
#include <iostream>
#include<fstream>
using namespace std;ifstream fin("rmq.in");ofstream fout("rmq.out");
int n,m,k,v[100001][17],log2[100001],i,j,limit,st,dr,lg;
int main()
{fin>>n>>m>>v[1][0];for(i=2;i<=n;i++){fin>>v[i][0];log2[i]=log2[i/2]+1;}
for(i=1;i<=log2[n];i++){
limit=n-(1<<i)+1;
for(j=1;j<=limit;j++){
v[j][i]=min(v[j][i-1],v[j+(1<<(i-1))][i-1]);
}
}while(m--){
fin>>st>>dr;lg=log2[dr-st+1];
fout<<min(v[st][lg],v[dr-(1<<lg)+1][lg])<<'\n';
}
return 0;
}