View Code of Problem 134

#include <bits/stdc++.h>
using namespace std;
struct node
{
	int data, id;
}a[100000];
bool cmp(struct node n1, struct node n2) {
	if(n1.data!=n2.data)
		return n1.data < n2.data;
	return n1.id < n2.id;
}
int main() {
	int n;
	while (cin >> n) {
		for (int i = 1; i <= n; i++) {
			scanf("%d", &a[i].data);
			a[i].id = i;
		}
		sort(a + 1, a + 1 + n, cmp);
		int q;
		scanf("%d", &q);
		while (q--) {
			int l, r;
			scanf("%d%d", &l, &r);
			for (int i = 1; i <= n; i++) {
				if (a[i].id >= l && a[i].id <= r) {
					printf("%d\n", a[i].data);
					break;
				}
			}
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 134