View Code of Problem 134

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
	int num;
	int pos;
}number;
number m[100000];
int cmp(const void*a,const void*b)
{
	number *pa=(number *)a;
	number *pb=(number *)b;
	int num1=pa->num;
	int num2=pb->num;
	if(num1>num2)
	{
		return 1;
	}
	else
	{
		return -1;
	}
}
int main() {
	int n,i,j;
	while(scanf("%d",&n)!=EOF)
	{
	for(i=0;i<n;i++)
	{
		scanf("%d",&m[i].num);
		m[i].pos=i+1;
	}
	qsort(m,n,sizeof(number),cmp);
	int q;
	scanf("%d",&q);
	while(q--)
	{
		int l,r;
		scanf("%d %d",&l,&r);
		for(i=0;i<n;i++)
		{
			if(m[i].pos>=l&&m[i].pos<=r)
			{
				printf("%d\n",m[i].num);
				break;
			}
		}
	}
}
	return 0;
}

Double click to view unformatted code.


Back to problem 134