Pagini recente » Cod sursa (job #1085559) | Borderou de evaluare (job #1567666) | Cod sursa (job #672985) | Cod sursa (job #1910800) | Cod sursa (job #3166666)
#include <bits/stdc++.h>
#include <cmath>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int rmq[18][100010],n,q;
int main()
{
f>>n>>q;
for(int i=1;i<=n;i++)
f>>rmq[0][i];
for(int i=1,pas=1;pas<=n;i++,pas*=2)
for(int j=1;j<=n-pas;j++)
rmq[i][j]=min(rmq[i-1][j],rmq[i-1][j+pas]);
for(;q;q--)
{
int a,b,exp,pow;
f>>a>>b;
exp=31-__builtin_clz(b-a+1);
pow=1<<exp;
g<<min(rmq[exp][a],rmq[exp][b-pow+1]);
}
return 0;
}