Pagini recente » Cod sursa (job #1522816) | Cod sursa (job #1397500) | Cod sursa (job #2609059) | Cod sursa (job #1158611) | Cod sursa (job #2882536)
#include <fstream>
using namespace std;
#define NMAX 100001
ifstream cin("rmq.in");
ofstream cout("rmq.out");
int n, m;
int v[NMAX];
int rmq[NMAX][NMAX];
void init() {
for (int i = 1; i <= n; ++i)
rmq[i][i] = i;
for (int i = 1; i <= n; ++i)
for (int j = i + 1; j <= n; ++j)
if (v[rmq[i][j - 1]] < v[j])
rmq[i][j] = rmq[i][j - 1];
else rmq[i][j] = j;
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; ++i)
cin >> v[i];
init();
for (int i = 1, a, b; i <= m; ++i) {
cin >> a >> b;
cout << rmq[a][b] << "\n";
}
cin.close();
cout.close();
return 0;
}