View Code of Problem 134

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
typedef struct info{
	int value;
	int pos;
}info; 

int cmp(const void *a ,const void *b){
	return (*(info *)a).value-(*(info *)b).value;
}

int main() {
	int n,q,l,r,i,j;
	info lis[100000];
	while(scanf("%d",&n)!=EOF){
		for(i=0;i<n;i++){
			scanf("%d",&lis[i].value);
			lis[i].pos=i+1;
		}
		qsort(lis,n,sizeof(info),cmp);
		scanf("%d",&q);
		for(i=0;i<q;i++){
			scanf("%d %d",&l,&r);
			for(j=0;j<n;j++){
				if(lis[j].pos>=l&&lis[j].pos<=r){
					printf("%d\n",lis[j].value);
					break;
				} 
			}
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 134