问题描述
给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。
输入格式
第一行包含一个数n,表示序列长度。
第二行包含n个正整数,表示给定的序列。
第三个包含一个正整数m,表示询问个数。
接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。
输出格式
总共输出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<stdio.h>
main()
{
int i,n,m,t,z,r,k,l,f,a[100],b[100][3];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
for(i=0;i<m;i++)
scanf("%d%d%d",&b[i][0],&b[i][1],&b[i][2]);
for(i=0;i<m;i++){
l=b[i][0];r=b[i][1];k=b[i][2];
for(t=l-1;t<r-1;t++)
for(z=t+1;z<r;z++)if(a[t]<a[z]){
f=a[t];a[t]=a[z];a[z]=f;}printf("%d\n",a[l+k-2]);}
return 0;
}
ä¸å®æ¯é误ï¼ä½ å¨æåºä¹åï¼å¹¶æ²¡æææ°ç»è¿åï¼å¯¼è´ç¬¬ä¸ç»æ°æ®æ£ç¡®åï¼ç¬¬äºç»æ°æ®é¢ä¸´çä¸æ¯åæ¥çæ°ç»ãæ ·ä¾ä¸ï¼å½ç¬¬ä¸ç»æ°æ®æåºç»æåï¼æ°ç»ç±â12345âå为äºâ54321âï¼çä½ ç¬¬äºç»æ°æ®è¦è®¡ç®çæ¶åï¼åæ¬ä½ åºè¯¥è®¡ç®â23âï¼ç»æä½ è®¡ç®äºâ43âï¼èªç¶æé®é¢ã
ä¸ç¡®å®æ¯å¦é误ï¼ä½æ¯ACMçé¢ç®ä¸åºç°å¤ç»æ°æ®çæ¶åï¼é常é½æ¯è¾å ¥ä¸ç»æ°æ®ï¼è¾åºä¸ç»æ°æ®ãå¦ææææçè¾å ¥é½åèµ·æ¥ï¼çè¾å ¥å®æ¯åä¸èµ·è¾åºï¼ä¼å¯¼è´æ ¼å¼åºéã
ä¹ä¸ç¡®å®æ¯å¦é误ï¼ä½ å¨ç¨å泡æåºå¯¹æ°ç»è¿è¡æä½ãå¨ACMé¢ç®ä¸ï¼é常æ åµä¸å泡æåºé½æ¯è¶ æ¶çæåºæ¹å¼ã以è¿éé¢ç®èè¨ï¼æåºæ¯å¯ä»¥ä¼åçï¼æ¯å¦ï¼æåªæåk个æ°æ®ï¼æ¾åºç¬¬k大çæ°ä¹åç´æ¥è¾åºãåæè ç¨å ¶ä»çä¼åæåºæ³ï¼åæ ·èèåªæåºå°ç¬¬k个ï¼
é£å¦ææè¿éé¢ç®æ¥è¯´ï¼è¯¥ææ ·å®ç°å¢