#include <iostream> #include <string> #include <algorithm> using namespace std; struct node { int no; int z; }a[100005]; bool cmp(node x, node y) { return x.z < y.z; } int main() { int n, q, i, l, r; while (~scanf("%d", &n)) { for (i = 0; i < n; i++) { scanf("%d", &a[i].z); a[i].no = i + 1; } sort(a, a + n, cmp); scanf("%d", &q); while (q--) { scanf("%d %d", &l, &r); for (i = 0; i < n; i++) { if (a[i].no >= l && a[i].no <= r) // 越靠后越大,只要在这个范围内就是最小值 { printf("%d\n", a[i].z); break; } } } } return 0; } |
Double click to view unformatted code.