Pagini recente » Istoria paginii utilizator/funlovinggirl | Cod sursa (job #2917722) | Cod sursa (job #499560) | Rezultatele filtrării | Cod sursa (job #2758671)
#include <iostream>
#include <fstream>
using namespace std;
ifstream be("rmq.in");
ofstream ki("rmq.out");
#define nmax 100002
#define lmax 18
long long rmq[lmax][nmax],a[nmax];
long long n,m;
void alakit()
{
for(int i=0;i<n;i++)
rmq[i][i]=i;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(a[rmq[i][j-1]]<a[j])
rmq[i][j]=rmq[i][j-1];
else
rmq[i][j]=j;
}
void solve()
{
alakit();
for(int i=0;i<m;i++)
{
long long x,y;
be>>x>>y;
x--,y--;
ki<<a[rmq[x][y]]<<'\n';
}
}
int main()
{
be>>n>>m;
for(int i=0;i<n;i++)
be>>a[i];
solve();
return 0;
}