Lang:G++
Edit12345678910111213141516171819202122232425#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int n,m,minn[1000006][25]={0};int main(){scanf("%d",&n);for (int i=1;i<=n;i++) scanf("%d",&minn[i][0]);for (int j=1;j<=20;j++)for (int i=1;i<=n;i++)if (i+(1 << j)-1<=n)minn[i][j]=min(minn[i][j-1], minn[i+(1<<(j-1))][j-1]);int x,y;scanf("%d",&m);for (int i=1;i<=m;i++){scanf("%d%d",&x,&y);int k=log(y-x+1)/log(2);printf("%d\n",min(minn[x][k],minn[y-(1<<k)+1][k]));}return 0;}