Cod sursa(job #2433413)
Utilizator | Marin Oana Florentina oana1201 | Data | 27 iunie 2019 12:20:24 |
---|---|---|---|
Problema | Range minimum query | Scor | 20 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
#define NMAX 10000
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int M[NMAX][NMAX], A[NMAX];
int main()
{
int n, m, x, y;
fin >> n >> m;
for (int i = 1; i <= n; i++)
fin >> A[i];
for (int i = 1; i <= n; i++)
M[i][i] = A[i];
for (int i = 1; i <= n; i++)
for (int j = i + 1; j <= n; j++)
M[i][j] = min(M[i][j - 1], A[j]);
for (int i = 1; i <= m; i++)
{
fin >> x >> y;
fout << M[x][y] << '\n';
}
fin.close();
fout.close();
return 0;
}