Cod sursa(job #1794336)

Utilizator medicinedoctoralexandru medicinedoctor Data 1 noiembrie 2016 10:51:19
Problema Arbori de intervale Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
#include <iterator>
#include <algorithm>

using namespace std;

ifstream cin("rmq.in");
ofstream cout("rmq.out");

vector <int> a,ind,t;

void qs(int l,int r)
{
    int i=l,j=r,q=t[(i+j)/2];
    while (i<j)
    {
        while (t[i]<q) i++;
        while (t[j]>q) j--;
        if (i<=j)
        {
            swap(t[i],t[j]);
            swap(ind[i],ind[j]);
            i++; j--;
        }
    }
    if (i<r) qs(i,r);
    if (l<j) qs(l,j);
}

main()
{
    int n,m,x,y;
    cin >> n >> m;
    a.resize(n);
    for (int i=0; i<a.size(); i++)
    {
        cin >> a[i];
    }
    qs(0,a.size()-1);
    for (int i=0; i<m; i++)
    {
        cin >> x >> y;
        cout << *min_element(a.begin()+x-1,a.end()+y-a.size()) << '\n';
    }
}