區間k大數查詢

2021-07-30 17:00:11 字數 662 閱讀 5012

問題描述  

給定乙個序列,每次詢問序列中第l個數到第r個數中第k大的數是哪個。  

輸入格式  

第一行包含乙個數n,表示序列長度。  

第二行包含n個正整數,表示給定的序列。  

第三個包含乙個正整數m,表示詢問個數。  

接下來m行,每行三個數l,r,k,表示詢問序列從左往右第l個數到第r個數中,從大往小第k大的數是哪個。序列元素從1開始標號。  

輸出格式  

總共輸出m行,每行乙個數,表示詢問的答案。  

樣例輸入  

5  1 2 3 4 5  

2  1 5 2  

2 3 2  

樣例輸出  

4  2  

c++:

#include

#include

using namespace std;

#define n 10000

#define m 100

int main(int argc, char** argv)

// for(int i=0;i>m;

sort(a,a+n);//對序列進行排序

// for(int i=0;i>l>>r>>k;

if(k<=(r-l+1))

}for(int i=0;i

區間K大數查詢

問題描述 給定乙個序列,每次詢問序列中第l個數到第r個數中第k大的數是哪個。輸入格式 第一行包含乙個數n,表示序列長度。第二行包含n個正整數,表示給定的序列。第三個包含乙個正整數m,表示詢問個數。接下來m行,每行三個數l,r,k,表示詢問序列從左往右第l個數到第r個數中,從大往小第k大的數是哪個。序...

區間k大數查詢

問題描述 給定乙個序列,每次詢問序列中第l個數到第r個數中第k大的數是哪個。輸入格式 第一行包含乙個數n,表示序列長度。第二行包含n個正整數,表示給定的序列。第三個包含乙個正整數m,表示詢問個數。接下來m行,每行三個數l,r,k,表示詢問序列從左往右第l個數到第r個數中,從大往小第k大的數是哪個。序...

區間k大數查詢

問題描述 給定乙個序列,每次詢問序列中第 l個數到第 r個數中第 k大的數是哪個。輸入格式 第一行包含乙個數 n,表示序列長度。第二行包含 n個正整數,表示給定的序列。第三個包含乙個正整數 m,表示詢問個數。接下來m行,每行三個數 l,r,k 表示詢問序列從左往右第 l個數到第 r個數中,從大往小第...