Cod sursa(job #1986887)
| Utilizator | Data | 29 mai 2017 10:52:33 | |
|---|---|---|---|
| Problema | Range minimum query | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <bits/stdc++.h>
using namespace std;
int a[1000000];
int ma[1000][1000];
int main()
{
freopen("rmq.in", "r", stdin);
freopen("rmq.out", "w", stdout);
int n, m;
scanf("%d%d", &n, &m);
for(int i=1;i<=n;i++)
scanf("%d", &a[i]);
for(int i=1;i<=n;i++)
ma[i][i]=i;
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++)
{
if(a[ma[i][j-1]]<a[j])
ma[i][j]=ma[i][j-1];
else
ma[i][j]=j;
}
}
for(int i=1;i<=m;i++)
{
int nr1,nr2;
scanf("%d%d", &nr1, &nr2);
printf("%d\n", ma[nr1][nr2]);
}
return 0;
}
