Cod sursa(job #717275)
| Utilizator | Data | 19 martie 2012 19:44:58 | |
|---|---|---|---|
| Problema | Range minimum query | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main()
{
int N, M;
ifstream in("rmq.in");
in >> N >> M;
vector<int> a(N + 1);
for(int i = 1; i <= N; ++i)
in >> a[i];
ofstream out("rmq.out");
for(int i = 0, left, right; i < M; ++i)
{
in >> left >> right;
int min = a[left];
for(int j = left + 1; j <= right; ++j)
{
if(a[j] < min)
min = a[j];
}
out << min << "\n";
}
in.close();
out.close();
return 0;
}
