1. 程式人生 > >區間k大數查詢

區間k大數查詢

#include <iostream>
#include<algorithm>
using namespace std;
#define N 10000
#define M 100
int main(int argc, char** argv) {
 
 int n,m;//n表示序列長度;m表示查詢次數
 cin>>n;
 int a[N];//用一個數組獲取序列數值
 int b[M];
 int l,r,k;
 for(int i=0;i<n;i++){
  cin>>a[i];
 }
// for(int i=0;i<n;i++){
//  cout<<a[i]<<" ";
// }
 cin>>m;
 sort(a,a+n);//對序列進行排序
// for(int i=0;i<n;i++){
//  cout<<a[i]<<" ";
// }
 for(int i=0;i<m;i++){
  cin>>l>>r>>k;
  if(k<=(r-l+1)){
   b[i]=a[r-1-k+1];
  }
  }
  for(int i=0;i<m;i++){
   cout<<b[i]<<endl;
  }
 return 0;
}