Pagini recente » Cod sursa (job #1366612) | Cod sursa (job #1699472) | Cod sursa (job #2586568) | Istoria paginii runda/moisil2017-10 | Cod sursa (job #1534569)
#include <fstream>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int A[100001];
int M[20001][20001];
int N,K;
void preprocesare()
{
int i,j;
for(i = 1 ; i <= N; i++)
M[i][i] = i;
for(i = 1; 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 x,y;
f >> N >> K;
for(int i = 1; i <= N; i++)
f >> A[i];
preprocesare();
for(int i = 1; i <= K; i++)
{
f >> x >> y;
if(y <= 20000)
g << A[ M[x][y] ] << "\n";
else
g << 0 << "\n";
}
/*for(int i = 1; i <= N; i++)
{
for(int j = 1; j <= N; j++)
g << M[i][j] << " ";
g << "\n";
}*/
return 0;
}