Cod sursa(job #717271)
| Utilizator | Data | 19 martie 2012 19:42:41 | |
|---|---|---|---|
| Problema | Range minimum query | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 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], min_i = left;
for(int j = left + 1; j <= right; ++j)
{
if(a[j] < min)
{
min = a[j];
min_i = j;
}
}
out << min_i << "\n";
}
in.close();
out.close();
return 0;
}
