Pagini recente » Cod sursa (job #856340) | Cod sursa (job #406155) | Cod sursa (job #2605468) | Cod sursa (job #378909) | Cod sursa (job #2751019)
// Arbori_noduri_BST_Nebunii.cpp : This file contains the 'main' function. Program execution begins and ends there.
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int n, m,val,pos,a,b,mi;
int segTree[400010];
void query(int ind, int st, int dr) {
if (a <= st && dr <= b) {
mi = min(segTree[ind], mi);
return;
}
int mid = (st + dr) / 2;
if (a <= mid)
query(2 * ind, st, mid);
if (mid < b)
query(2 * ind + 1, mid + 1, dr);
}
void update(int ind, int st, int dr) {
if (st == dr) {
segTree[ind] = val;
return;
}
int mid = (st + dr) / 2;
if (pos <= mid) {
update(2 * ind, st, mid);
}
else {
update(2 * ind + 1, mid + 1, dr);
}
segTree[ind] = min(segTree[2 * ind], segTree[2 * ind + 1]);
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++) {
fin >> val;
pos = i;
update(1, 1, n);
}
//build(1, 1, n);
for (int i = 0; i < m; i++) {
fin >> a >> b;
mi = 100000;
query(1, 1, n);
fout << mi << '\n';
}
return 0;
}