Pagini recente » Cod sursa (job #2802215) | Arhiva de probleme | Cod sursa (job #1573128) | Arhiva de probleme | Cod sursa (job #2751377)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("rmq.in");
ofstream out("rmq.out");
int main()
{
long n,m,x,y;
in >> n >> m;
int ans[n+1][n+1];
int vec[n+1];
for(int i=1;i<=n;i++){
in >> vec[i];
}
for (int i=0;i<=n;i++){
for (int j=0;j<=m;j++){
ans[i][j]=0;
}
}
for (int i = 1; i <=n; i++)
ans[i][i] = i;
for (int i=1;i<=n;i++){
for (int j = i+1; j <=n; j++)
if (vec[ans[i][j-1]]<vec[j])
ans[i][j]=ans[i][j-1];
else
ans[i][j]=j;
}
for(int i=1;i<=m;i++){
in >> x >> y;
out << vec[ans[x][y]] << " ";
}
return 0;
}