#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.