Pagini recente » Cod sursa (job #2364152) | Cod sursa (job #504688) | Cod sursa (job #138921) | Cod sursa (job #2423504) | Cod sursa (job #1585799)
#include <stdio.h>
#include <stdlib.h>
int v[10000], N, M, RMQ[10000][10000];
int RMQ_1() {
int i,j;
for(i=1;i<=N;i++) {
RMQ[i][i] = i;
}
for(i=1;i<=N;i++) {
for(j=i+1;j<=N;j++) {
if(v[RMQ[i][j-1]] < v[j]) {
RMQ[i][j] = RMQ[i][j-1];
} else {
RMQ[i][j] = j;
}
}
}
}
int main(void) {
FILE *fin,*fout;
int i,x,y;
fin = fopen("rmq.in","r");
fout = fopen("rmq.out","w");
fscanf(fin,"%d %d",&N,&M);
for(i=1;i<=N;i++) {
fscanf(fin,"%d",&v[i]);
}
RMQ_1();
while(M--) {
fscanf(fin,"%d%d",&x,&y);
printf("%d ",v[RMQ[x][y]]);
fprintf(fout,"%d\n",v[RMQ[x][y]]);
}
return 0;
}