微信公众号:CodeFun
思路
- 注意题目中给出的数据是无序的
- 所以在给定区间询问的时候,可以将数push到优先队列中,查询到该区间中第k大数,也可以排序后在该区间查询第k大数
code
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,x,y,z,t;
cin>>n;
int a[n];
for(int i=0;i<n;i++) cin>>a[i];
cin>>t;
while(t--){
cin>>x>>y>>z;
priority_queue<int> q;
for(int i=x-1;i<y;i++) q.push(a[i]);
while(--z) q.pop();
cout<<q.top()<<endl;
}
return 0;
}