URAL_1026
排个序即可。
#include<stdio.h> #include<string.h> #include<stdlib.h> #define MAXD 100010 int N, K, a[MAXD]; char b[MAXD]; int cmp(const void *_p, const void *_q) { int *p = (int *)_p, *q = (int *)_q; return *p < *q ? -1 : 1; } void init() { int i; for(i = 1; i <= N; i ++) scanf("%d", &a[i]); qsort(a + 1, N, sizeof(a[0]), cmp); } void solve() { int i, k; scanf("%s", b); scanf("%d", &K); for(i = 0; i < K; i ++) { scanf("%d", &k); printf("%d\n", a[k]); } } int main() { while(scanf("%d", &N) == 1) { init(); solve(); } return 0; }