Cod sursa(job #1067032)

Utilizator andreeaghetuUNIBUC andreeaghetu andreeaghetu Data 26 decembrie 2013 01:55:38
Problema Range minimum query Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
#define inf 100001
using namespace std;
ifstream in ("rmq.in");
ofstream out ("rmq.out");
int minim (int a, int b)
{
    if (a>b)
        return b;
    return a;
}
int main()
{
    int N, M;
    in>>N>>M;
    vector <int> v[N];
    int x;
    for (int i=0;i<N;++i)
    {
        in>>x;
        v[i].push_back(x);
    }
    for (int i=1;i<N;++i)
    {
        for (int j=1;j<=i;++j)
            v[i].push_back(minim(v[i-1][j-1], v[i][j-1]));
    }
    int a, b;
    for (int i=0;i<M;++i)
    {
        in>>a>>b;
        --a;
        --b;
        N=v[b].size();
        out<<v[b][N-a-1]<<'\n';
    }

    return 0;
}