Pagini recente » Cod sursa (job #1408467) | Cod sursa (job #1751861) | Cod sursa (job #307105) | Cod sursa (job #1800232) | Cod sursa (job #2179395)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int n,m,A[100005];
vector <int> M[100005];
void RMQ()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
M[i].push_back(0);
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 i,x,y;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
fin>>n>>m;
for(i=0;i<n;i++)
fin>>A[i];
RMQ();
for(i=0;i<m;i++)
{
fin>>x>>y;
fout<<A[M[x-1][y-1]]<<"\n";
}
fin.close();
fout.close();
return 0;
}