Cod sursa(job #1042738)

Utilizator leontinLeontin leontin Data 27 noiembrie 2013 17:24:35
Problema Range minimum query Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include<fstream>
#define MAXN 1000
#define LOGMAXN 100
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");

  void fun(int M[MAXN][MAXN], int A[MAXN], int N)
  {
      int i, j;
      for (i =0; i < N; i++)
          M[i][i] = i;
      for (i = 0; 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()
{
    int n;
    int mat[MAXN][MAXN], a[MAXN],i,m,j;
    f>>n>>m;
    for(i=0;i<n;i++)
        f>>a[i];
    fun(mat,a,n);
    for(i=1;i<=m;i++)
    {
        int x,y;
        f>>x>>y;
        g<<a[mat[x-1][y-1]]<<endl;
    }
}