Pagini recente » Cod sursa (job #2010878) | Cod sursa (job #169212) | Cod sursa (job #4263) | Cod sursa (job #71098) | Cod sursa (job #1907672)
#include <fstream>
using namespace std;
ifstream fin("rmg.in");
ofstream fout("rmg.out");
long n,m,p1,p2,k,S;
long L[100010];
long A[100010];
long MAT[20][100010];
int main()
{
fin>>n>>m;
for (int i=1;i<=n;i++)
fin>>A[i];
L[1]=0;
for (int i=2;i<=n;i++)
L[i]=L[i/2]+1;
for (int i=1;i<=n;i++)
MAT[0][i]=A[i];
int p;
for (int i=1;(1<<i)<=n;i++)
for (int j=1;j<=n-(1<<i)+1;j++)
{
p=1<<(i-1);
MAT[i][j]=min(MAT[i-1][j+p],MAT[i-1][j]);
}
for (int i=1;i<=m;i++)
{
fin>>p1>>p2;
k=p2-p1+1;
p=L[k];
S=k-(1<<p);
fout<<min(MAT[p][p1+S],MAT[p][p1])<<"\n";
}
return 0;
}