問題描述
給定乙個序列,每次詢問序列中第
l個數到第
r個數中第
k大的數是哪個。
輸入格式
第一行包含乙個數
n,表示序列長度。
第二行包含
n個正整數,表示給定的序列。
第三個包含乙個正整數
m,表示詢問個數。
接下來m行,每行三個數
l,r,k
,表示詢問序列從左往右第
l個數到第
r個數中,從大往小第
k大的數是哪個。序列元素從
1開始標號。
輸出格式
總共輸出
m行,每行乙個數,表示詢問的答案。
樣例輸入 5
1 2 3 4 5
21 5 2
2 3 2
樣例輸出 4
2 資料規模與約定 對於
30%的資料,
n,m<=100;
對於100%
的資料,
n,m<=1000;
保證k<=(r-l+1)
,序列中的數
<=106。
#includeusing namespace std;
int main()
int m; //詢問個數
cin>>m;
int b[m][n]; //用來放每一段的數
for(int i=0;i>l>>r>>k;
for(int i=l-1,j=0;i<=r-1;i++,j++) //賦值
for(int i=0;i<=r-l;i++) //對段結果進行由大到小的排序
{ for(int j=i+1;j<=r-l;j++)
{if(b[p][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個數中,從大往小第k大的數是哪個。序...