View Code of Problem 134

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct node {
	int no;
	int z;
}a[100005];
bool cmp(node x, node y)
{
	return x.z < y.z;
}
int main()
{
	int n, q, i, l, r;
	while (~scanf("%d", &n))
	{
		for (i = 0; i < n; i++)
		{
			scanf("%d", &a[i].z);
			a[i].no = i + 1;
		}
		sort(a, a + n, cmp);
		scanf("%d", &q);
		while (q--)
		{
			scanf("%d %d", &l, &r);
			for (i = 0; i < n; i++)
			{
				if (a[i].no >= l && a[i].no <= r) // 越靠后越大,只要在这个范围内就是最小值
				{
					printf("%d\n", a[i].z);
					break;
				}
			}
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 134