問題描述
給定一個序列,問每個序列中第L個數字到第R個數字中哪個數字最大。
輸入格式
第一行包含數字n,表示序列長度。
第二行包含代表給定序列的n個正整數。
第三個包含正整數m,表示查詢次數。
下面的m行,每一行有三個數字l,r,K r,K,表示查詢序列中從左到右從l數到r數哪個數字從大到小最大。序列元素從1開始編號。
output format
總共輸出m行,每行一個數字,表示查詢的答案。
樣本輸入
5
1 2 3 4 5
2
1 5 2
2 3 2
樣本輸出
4
2
數據比例和慣例
為30%數據,n,m=100
對于100%數據,n,m=1000
保證k<=(r-l+1),序列中的數<=106。
#include using namespace std;bool cmp(int a, int b) { return a > b;}int main() { int n, m; int l, r, k; int i, j; int nums[1005]; int temp[1005]; scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d",&nums[i]); } scanf("%d", &m); while(m--) { scanf("%d%d%d", &l, &r, &k); for (i = 0, j = l; j <= r; i++, j++) { temp[i] = nums[j]; } sort(temp, temp + i, cmp); printf("%d", temp[k - 1]); } return 0;}