{"trustable":false,"sections":[{"title":"问题描述","value":{"format":"HTML","content":"给定一个数组 a[1...n],数组元素各不相同,你的程序要对每次查询Q(i,j,k)作出回答,其中Q(i,j,k)的含义为在数组a[i...j]中第k大的数字.\u003cbr\u003e\n例如,给出数组a\u003d(1, 5, 2, 6, 3, 7, 4).查询语句为Q(2, 5, 3),即从(5,2,6,3)中找出第3大的元素,将之排序得到(2, 3, 5, 6),故第三大的数字是5,所以这次查询的结果应当为5.\n"}},{"title":"输入格式","value":{"format":"HTML","content":"数据第1行有两个数字N与M,分别表示数组元素的个数与查询次数(1 \u0026lt;\u003d n \u0026lt;\u003d 100000, 1 \u0026lt;\u003d m \u0026lt;\u003d 5000).\u003cbr\u003e\n第2行有N个数字,表示数组中的各元素,数组中各元素互不相同,并且每个数字的绝对值不超过10\u003csup\u003e9\u003c/sup\u003e.\n\u003cbr/\u003e\n接下来的m行,每行包含3个数字i,j,k,(1 \u0026lt;\u003d i \u0026lt;\u003d j \u0026lt;\u003d n, 1 \u0026lt;\u003d k \u0026lt;\u003d j - i + 1),表示一次查询Q(i,j,k)"}},{"title":"输出格式","value":{"format":"HTML","content":"对于每次查询,输出查询结果,即a[i...j]中第k大的数字,每个结果占一行"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e7 3\n1 5 2 6 3 7 4\n2 5 3\n4 4 1\n1 7 3\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e5\n6\n3\u003c/pre\u003e"}},{"title":"Hint","value":{"format":"HTML","content":"\n \u003cdiv class\u003d\"ptx\"\u003e\n输入数据较多,请使用C语言风格的输入输出语句(scanf(),printf()),否则可能发生Time Limit Exceed.\n \u003c/div\u003e"}}]}