Pagini recente » Cod sursa (job #2308071) | Cod sursa (job #2154154) | Clasament kod_tesztel3 | Cod sursa (job #639848) | Cod sursa (job #2593076)
#include <fstream>
using namespace std;
ifstream in ("rmq.in");
ofstream out ("rmq.out");
const int N=100001 ;
int rmq[17][N];
int log[N];
int main()
{
int n,m;
in>>n>>m;
for (int i=1; i<=n; i++)
{
in>>rmq[0][i];
}
log[1]=0;
for(int i=2; i<=n; i++)
{
log[i]=1+log[i/2];
}
for (int i=1; i<=log[n]; i++)
{
for (int j=1<<i; j<=n; j++)
{
rmq[i][j]=min(rmq[i-1][j-(1<<(i-1))],rmq[i-1][j]);
}
}
for(int i=0; i<m; i++)
{
int a,b;
in>>a>>b;
int l=log[b-a+1];
out<< min(rmq[l][a+(1<<l)-1],rmq[l][b])<<"\n";
}
return 0;
}