給定乙個序列每次詢問序列中第l個數到第r個數中第k大的數是哪個。
第一行包含乙個數n,表示序列長度。
第二行包含n個正整數,表示給定的序列。
第三個包含乙個正整數m,表示詢問個數。
接下來m行,每行三個數l,r,k,表示詢問序列從左往右第l個數到第r個數中,從大往小第k大的數是哪個。序列元素從1開始標號。
總共輸出m行,每行乙個數,表示詢問的答案。
51 2 3 4 5
21 5 2
2 3 242
#include
using
namespace std;
int a[
1005];
int b[
1005];
intmain()
int m;
//詢問序列個數
cin >> m;
// m行
while
(m--
)sort
(b+l, b+r+1)
;//從小到大排序
cout << b[r-k+1]
<< endl;
// 輸出序列中第k大的數
}return0;
}
該題的解決方法很多種,這是其中一種,比較暴力!!!
僅供參考…
區間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個數中,從大往小第...