解析:此题模拟就可以,注意对L-R区间元素排序时,需要先将区间元素从新存入数组,对新数组排序,另外需要注意题目描述:每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。
#include <iostream>
#include <algorithm>
using namespace std;
int arr[1001], brr[1001];
bool cmp(int a, int b) {
return a > b;
}
int main() {
int n, m;
int l, r, k;
int i, j;
while(cin >> n) {
for (i=0; i<n; i++)
cin >> arr[i];
cin >> m;
while(m--) {
cin >> l >> r >> k;
for (j=l-1,i=0; j<r; j++,i++)
brr[i] = arr[j];
sort(brr,brr+i,cmp);
cout << brr[k-1] << endl;
}
}
return 0;
}
评论区