Pagini recente » Cod sursa (job #1687396) | Istoria paginii runda/03.05 | Cod sursa (job #1168808) | Cod sursa (job #1575141) | Cod sursa (job #2181780)
#include<stdio.h>
#include<stdlib.h>
#define MAX 10000
int main()
{
int N, Q, x, i, j, y;
int *b;
FILE *f, *g;
int a[MAX][MAX];
f = fopen("rmq.in", "rt");
g = fopen("rmq.out", "wt");
fscanf(f, "%d", &N);
//read number of integers
for(i = 0; i < N; i++)
fscanf(f, "%d", &a[0][i]);
//read numbers
for(i = 1; i < N; i++)
for(j = 0; j < N - i; j++)
if(a[i - 1][j] > a[i - 1][j + 1])
a[i][j] = a[i - 1][j + 1];
else a[i][j] = a[i - 1][j];
fscanf(f, "%d", &Q);
b = (int *)malloc(Q * sizeof(int));
for(i = 0; i < Q; i++){
fscanf(f, "%d%d", &x, &y);
b[i] = a[y - x][x - 1];
}
for(i = 0; i < Q; i++)
fprintf(g, "%d\n", b[i]);
free(b);
return 0;
}