Pagini recente » Cod sursa (job #3186379) | Cod sursa (job #956494) | Cod sursa (job #883295) | Cod sursa (job #335086) | Cod sursa (job #2284605)
#include <bits/stdc++.h>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int rmq[20][100004];
int main()
{
int n,q,i,p2=1,j;
f>>n>>q;
for(i=1;i<=n;i++)
f>>rmq[0][i];
for(i=1;p2<=n;i++){
for(j=1;j+p2<=n;j++)
rmq[i][j]=min(rmq[i-1][j],rmq[i-1][j+p2]);
p2*=2;
}
// for(i=1;i<=5;i++){
// for(j=1;j<=n;j++)
// g<<rmq[i][j]<<" ";
// g<<"\n";
// }
//
int a,b,lung;
for(i=1;i<=q;i++){
f>>a>>b;
lung=b-a+1;p2=0;
while(lung>1){
p2++;
lung=(lung>>1);
}
g<<min(rmq[p2][a],rmq[p2][b-(1<<p2)+1])<<"\n";
}
return 0;
}