Cod sursa(job #2692544)

Utilizator SoulSnorterPetre Robert Cristian SoulSnorter Data 2 ianuarie 2021 23:50:25
Problema Range minimum query Scor 0
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("%d", &m);
	scanf("%d", &n);
	for (long int i = 0; i < m; i++)
	{
		long int x;
		scanf("%d", &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("%d", &x);
		scanf("%d", &y);
		long int j = 0;
		while (!(map[v[j]] >= x - 1 && map[v[j]] <= y - 1))
		{
			j++;
		}
		printf("%d\n", v[j]);
	}
}