問題描述
給定一個序列洽胶,每次詢問序列中第l個數(shù)到第r個數(shù)中第K大的數(shù)是哪個图焰。
輸入格式
第一行包含一個數(shù)n梅割,表示序列長度霜第。
第二行包含n個正整數(shù),表示給定的序列户辞。
第三個包含一個正整數(shù)m泌类,表示詢問個數(shù)。
接下來m行底燎,每行三個數(shù)l,r,K刃榨,表示詢問序列從左往右第l個數(shù)到第r個數(shù)中,從大往小第K大的數(shù)是哪個双仍。序列元素從1開始標號枢希。
輸出格式
總共輸出m行,每行一個數(shù)朱沃,表示詢問的答案苞轿。
樣例輸入
5
1 2 3 4 5
2
1 5 2
2 3 2
樣例輸出
4
2
數(shù)據(jù)規(guī)模與約定
對于30%的數(shù)據(jù),n,m<=100为流;
對于100%的數(shù)據(jù)呕屎,n,m<=1000;
保證k<=(r-l+1)敬察,序列中的數(shù)<=106秀睛。
解題思路:
? ? 導(dǎo)入Scanner進行輸入各種數(shù)據(jù),m次莲祸,所以用while(m-->0){}進行循環(huán)操作蹂安。先將a[]中l(wèi)~r的數(shù)據(jù)備份到s,把s中的數(shù)據(jù)進行從大到小排序锐帜,這里用個冒泡排序田盈,最后輸出第k-1個位置上的數(shù)據(jù),就是第k大的數(shù)字缴阎。
源代碼: