View Code of Problem 134

#include<stdio.h>
#include<stdlib.h>

typedef struct ele
{
	int pos;
	int num;
} Ele;
int cmp(const void * a, const void * b)
{
	Ele* e1 = (Ele *)a;
	Ele* e2 = (Ele *)b;
	return e1->num - e2->num;
}
int main()
{
	int n = 0; 
	while (scanf("%d", &n) != EOF)
	{
		Ele* eles = (Ele *)malloc(sizeof(Ele) * n);
		for (int i = 0; i < n; ++i)
		{
			eles[i].pos = i + 1;
			scanf("%d", &eles[i].num);
		}
		qsort(eles, n, sizeof(eles[0]), cmp);

		int q = 0;
		scanf("%d", &q);

		int l = 0, r = 0;
		while (q-- > 0)
		{
			scanf("%d %d", &l, &r);
			for (int i = 0; i < n; ++i)
				if (eles[i].pos <= r && eles[i].pos >= l)
				{
					printf("%d\n", eles[i].num);
					break;
				}
					
		}

			
	}
}

Double click to view unformatted code.


Back to problem 134