Cod sursa(job #491055)

Utilizator georgelRector George georgel Data 9 octombrie 2010 14:58:34
Problema Range minimum query Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.72 kb
#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;
}