问题描述
给定一个序列,每次询问序列中第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个ï¼
é£å¦ææè¿éé¢ç®æ¥è¯´ï¼è¯¥ææ ·å®ç°å¢
一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?
没有语法错误,只能说明在格式上没有找到错误,还不一定是正确的,更不要说能够正确执行了。没有语法错误,有三种可能:1、格式没问题,但算法错误;2、格式没问题,但不符合要求,导致计算结果错误;3、格式没问题,且算法没问题,能够计算出正确结果。只有符合第3种情况,才是正确的程序。
c语言编程题,看一下哪里错了。
num还没初始化,就调用int guess(int num),肯定错了。
C语言的一道题 我不知道错哪了 要怎么改。 跪请大神指点,别把百度上的...
include<stdio.h>void main(void){double a,b,c;printf("请输入三边");scanf("%lf,%lf,%lf",&a,&b,&c);\/\/去掉\\n,你设置了输入格式,所以正确的输入格式是:以逗号隔开输入的数据if(a+b>c&&a+c>b&&b+c>a){if(a==b&&b==c)printf("等边三角形");else if(a*a+b*b==c*...
c语言求两个整数的和、乘积、差、商 麻烦大神帮我看一下哪错了 谢谢
错误比较多。1、scanf,括号中不能乱加空格,%f %f,无法正确读取a、b 2、既然是整数a、b,那么也不应该用%f 3、scanf下面的四行都没有加分号 4、如果按题意a、b是整数,那么对于s=a\/b,需要转为float
C语言编程,求大神帮忙看看哪里错了 int main() { int a=1;b=2;c;
把int语句中前两个分号改成逗号。int main(){ int a=1,b=2,c;if (a<b)c=b;if (b
刚学c语言,请大神看一下,哪里错了
你好,代码没有错,只是你在输入重力时,输入的格式没有按要求来输入重力g,正确的输入g应该是这样的,请看下图。希望能帮到你。
C语言编程,求3到n的所有素数的平方根之和,大神看看我哪里错了
你的第2个for循环的自增写错了。应该自增1,即j++。j初始值应该是2.第2个for循环的作用是检测i是否能被1到i的平方根之间的整数整除,如果有1个能整除,就不是素数,所以从2开始,每一个数都需要检测,所以j每次增加1,不是增加2.第2个if条件写错了,应该是j>sqrt(i)完整fun函数代码如下,...
一道从小到大排序的c语言编程题,用的是选择排序法,输出结果不对,但是...
这是我的选择排序法:include<stdio.h>void xuanze(int *a,int len);#define size 10int main(){int shuzu[10],i;printf("请输入10个整数:\\n");for(i=0;i<size;i++){scanf("%d",&shuzu[i]);}xuanze(shuzu,size);printf("排序后:\\n");for(i=0;i<size;i++){printf("%5d...
各位c语言大神看一下,一元二次方程编程哪里错了
第10行printf函数多了个%f,两个你写了三个。
C语言开关灯问题,麻烦大神们帮我看看这个程序哪里错了啊,结果不对...
两个错误:1、int a[6000]={1};这句。你这只是将a[0]赋值1,其他都是0,数组默认以0填充,应该改为:int a[6000];for(i=0;i<6000;i++)a[i]=1;2、第二层循环里:if(a[j]==0)a[j]=1;if(a[j]==1)a[j]=0;这个语句把所有的灯都关闭了,因为如果关了,就打开;打开后又...