Pagini recente » Cod sursa (job #2834665) | Cod sursa (job #547142) | Cod sursa (job #2484724) | Cod sursa (job #1317631) | Cod sursa (job #1069372)
#include <stdio.h>
using namespace std;
const int nmax = 10300;
int n,m,a[nmax],p[nmax][nmax];
void create(){
for(int i =1 ;i<=n;i++)p[i][i]=i;
for(int i =1 ;i<=n;i++)
for(int j =i+1 ;j<=n;j++){
if(a[j]<a[p[i][j-1]])p[i][j]=j;
else p[i][j]=p[i][j-1];
}
}
int main(){
freopen("rmq.in","r",stdin);
freopen("rmq.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
create();
int x,y;
for(int i=1;i<=m;i++){
scanf("%d %d",&x,&y);
printf("%d\n",a[p[x][y]]);
}
fclose(stdout); fclose(stdin);
return 0;
}