View Code of Problem 134

#include<stdio.h>
struct Num{
	int data;
	int pos;
};
int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		int i,j;
		struct Num a[100000];
		long q;
		for(i=1;i<=n;i++){
			scanf("%d",&a[i].data);
			a[i].pos=i;
		}
		for(i=2;i<=n;i++){
			if(a[i].data<a[i-1].data){
				int temp1 = a[i].data;
				int temp2 = a[i].pos;
				for(j=i-1;j>=1&&a[j].data>temp1;j--){
					a[j+1].data = a[j].data;
					a[j+1].pos = a[j].pos;
				}
				a[j+1].data = temp1;
				a[j+1].pos = temp2;
			}
		}
		scanf("%ld",&q);
		int l,r;
		while(q--){
			scanf("%d %d",&l,&r);
			for(i=1;i<=n;i++){
				if(a[i].pos>=l&&a[i].pos<=r){
					printf("%d\n",a[i].data);
					break;
				}
			}
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 134