思路
本来想写数据结构,但看了一眼数据范围,10e3,暴力过就行了。
b数组用来存储该区间从大到小排列后的数据,第k大的数就是l+k-1。
时间复杂度:询问m,排序nlogn
代码
#include<bits/stdc++.h>
using namespace std;
int n,m,l,r,k,a[1005],b[1005];
bool cmp(int x,int y){
return x>y;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
scanf("%d",&m);
for(int i=1;i<=m;i++){
scanf("%d%d%d",&l,&r,&k);
for(int i=l;i<=r;i++) b[i]=a[i];
sort(b+l,b+r+1,cmp);
cout<<b[l+k-1]<<endl;
}
return 0;
} 
京公网安备 11010502036488号