Pagini recente » Cod sursa (job #653031) | Cod sursa (job #1918841) | Cod sursa (job #1137762) | Cod sursa (job #373105) | Cod sursa (job #491055)
Cod sursa(job #491055)
#include <stdio.h>
#include <stdlib.h>
#define Max 20000
int m[Max][Max],a[Max],n,m2;
void process1(int m[Max][Max],int a[Max],int n)
{
int i,j;
for(i = 1; i <= n; i++)
m[i][i] = i;
for(i = 1; i <= n; i++)
{
for(j = i+1; j <= n; j++)
if(a[m[i][j-1]] < a[j])
m[i][j] = m[i][j-1];
else
m[i][j] = j;
}
}
int main()
{
freopen("rmq.in","r",stdin);
freopen("rmq.out","w",stdout);
int i,x,y,j;
scanf("%d",&n);
scanf("%d",&m2);
for(i = 1; i <= n; i++)
scanf("%d",&a[i]);
process1(m,a,n);
for(i = 1; i <= m2; i++)
{
scanf("%d %d",&x,&y);
printf("%d \n",a[m[x][y]]);
}
return 0;
}