#include <stdio.h> #include <stdlib.h> struct num{ int data; int pos; }; struct num arr[100005]; int comp(const void *a, const void *b){ return (*(struct num *)a).data > (*(struct num *)b).data ? 1 : -1; } int main(){ int n,q,l,r; //输入:1个整数n,n个整数,1<=n<=100000 while(scanf("%d", &n)!=EOF){ for(int i=0; i<n; i++){ scanf("%d", &arr[i].data); arr[i].pos = i+1; } //处理1:对数组快排 qsort(arr, n, sizeof(arr[0]), comp); //输入:1个整数q,q对整数,1<=q<=100000 scanf("%d", &q); while(q--){ scanf("%d %d", &l, &r); for(int i=0; i<n; i++){ if(l<=arr[i].pos && arr[i].pos<=r){ printf("%d\n", arr[i].data); break; } } } //处理2:遍历数组,输出第一个满足条件的数值 //输出:q个整数 } } |
Double click to view unformatted code.