Cod sursa(job #2692543)

Utilizator SoulSnorterPetre Robert Cristian SoulSnorter Data 2 ianuarie 2021 23:42:30
Problema Range minimum query Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <stdio.h>

using namespace std;

int main()
{
	freopen("rmq.in", "r", stdin);
	freopen("rmq.out", "w", stdout);

	int m, n;
	vector<int> v;
	unordered_map<int, int> map;
	scanf("%d", &m);
	scanf("%d", &n);
	for (int i = 0; i < m; i++)
	{
		int x;
		scanf("%d", &x);
		map[x] = i;
		v.push_back(x);
	}


	sort(v.begin(), v.end());

	/*
	for (int i = 0; i < m; i++)
	{
		cout << v[i]<< " "<< map[v[i]] << " "<<"\n";
	}
	*/

	for (int i = 0; i < n; i++)
	{
		int x, y;
		scanf("%d", &x);
		scanf("%d", &y);
		int j = 0;
		while (!(map[v[j]] >= x - 1 && map[v[j]] <= y - 1))
		{
			j++;
		}
		printf("%d\n", v[j]);
	}
}