Pagini recente » Rating Turcu Maria (marianita) | Cod sursa (job #1277501) | Cod sursa (job #590529) | Cod sursa (job #1939972) | Cod sursa (job #1932307)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int a[40][100100];
inline void get_log(int n, int &nr, int &p)
{
nr=0,p=1;
while(p<=n)
{
p*=2;
nr++;
}
nr--;
p/=2;
}
int main()
{int n,i,j,k,m,A,q,x,y;
f>>n>>q;
for(i=1;i<=n;i++)
f>>a[0][i];
get_log(n,m,A);
int p=1;
for(i=1;i<=m;i++)
{
p*=2;
for(j=1;j<=n;j++)
a[i][j]=min(a[i-1][j],a[i-1][j+p/2]);
}
for(i=1;i<=q;i++)
{
f>>x>>y;
get_log(y-x,k,A);
g<<min(a[k][x],a[k][y-A+1])<<'\n';
}
return 0;
}