Cod sursa(job #2692545)

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

using namespace std;

long int m, n;
long int v[100000];
unordered_map<long int, long int> map;

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

	scanf("%ld", &m);
	scanf("%ld", &n);
	for (long int i = 0; i < m; i++)
	{
		long int x;
		scanf("%ld", &x);
		map[x] = i;
		v[i] = x;
	}


	sort(v, v + m);

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

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