Pagini recente » Cod sursa (job #1635588) | Cod sursa (job #2109315) | Cod sursa (job #2786082) | Cod sursa (job #370863) | Cod sursa (job #1794336)
#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';
}
}