1 / 17
文档名称:

noip普及组赛前冲刺资料.docx

格式:docx   大小:340KB   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

noip普及组赛前冲刺资料.docx

上传人:知识徜徉土豆 2024/9/14 文件大小:340 KB

下载得到文件列表

noip普及组赛前冲刺资料.docx

文档介绍

文档介绍:该【noip普及组赛前冲刺资料 】是由【知识徜徉土豆】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【noip普及组赛前冲刺资料 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。一、数字数组级数求和(NOIP2002)【题目描述】已知:Sn=1+1/2+1/3+…+1/n。显然对于任意一个数K,,Sn大于K。现给出一个整数K(1≤K≤15),要求计算出一个最小的n,使得Sn>K【输入】一行,一个整数K【输出】一行,一个整数n【输入样例】1【输出样例】2陶陶摘苹果(NOIP2005)【题目描述】陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。【输入】两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。【输出】一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。【输入样例】100200150140129134167198200111110【输出样例】5数字统计(NOIP2010)【题目描述】请统计某个给定范围[L,R]的所有整数中,数字2出现的次数。比如给定范围[2,22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。【输入】共1行,为两个正整数L和R,之间用一个空格隔开。【输出】共1行,表示数字2出现的次数。【输入样例】222【输出样例】6【输入输出样例2】2100【输出】20【数据范围】1≤L≤R≤10000。狐狸追兔子【题目描述】围绕着山顶有m个洞(m<=100),一只狐狸和一只兔子住在各自的洞里。狐狸总想吃掉兔子。一天,兔子对狐狸说:“你想吃我有一个条件,先把洞从1~m编上号,你从m号洞出发,先到一号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依次类推,次数不限。若能找到我,你就可以饱餐一顿。不过在没有找我以前不能停下来。”狐狸满口答应就开始找了,它从早到晚进了n次洞(1<=n<=1000),累得昏了过去也没有找到兔子。请问,兔子躲在几号洞里?【输入】一行,洞的个数m,狐狸进洞的次数n【输出】一行,兔子躲的洞的号数,由小到大输出,各数中间用空格隔开【输入样例】102【输出样例】245678910不高兴的津津(NOIP2004)【题目描述】津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。【输入】包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。【输出】一行,这一行只包含一个数字。如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。【输入样例】53627253540406【输出样例】3多项式输出(NOIP2009)【题目描述】一元n次多项式可用如下的表达式表示:其中,aixi称为i次项,ai称为i次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:,从左到右按照次数递减顺序给出多项式。。,则多项式开头不出现“+”号,如果多项式n次项系数为负,则多项式以“-”号开头。,以“+”号或者“-”号连接此项与前一项,分别表示此项系数为正或者系数为负。紧跟一个正整数,表示此项系数的绝对值(如果一个高于0次的项,其系数的绝对值为1,则无需输出1)。如果x的指数大于1,则接下来紧跟的指数部分的形式为“x^b”,其中b为x的指数;如果x的指数为1,则接下来紧跟的指数部分形式为“x”;如果x的指数为0,则仅需输出系数即可。,多项式的开头、结尾不含多余的空格。【输入】共有2行第一行1个整数,n,表示一元多项式的次数。第二行有n+1个整数,其中第i个整数表示第n-i+1次项的系数,每两个整数之间用空格隔开。【输出】共1行,按题目所述格式输出多项式。【输入样例】5100-11-3010【输出样例】100x^5-x^4+x^3-3x^2+10【输入输出样例2】3-50001【输出】-50x^3+1【数据范围】1≤n≤100,多项式各次项系数的绝对值均不超过100。二、字符数组定义:String等价于array[0..255]ofchar,其中第0号但有存放的是实际长度。Ansistring长度不限。常用操作Length(st)求st的长度Copy(st,m,n)从st的第m个位置开始复制n个字符Delete(st,m,n)删除st的第m个位置开始的n个字符Val(st,x,code)将字符串st转化为数字x,若能成功转化,则code=0;若不能,code返回第一个非法字符的位置。注:当st只有一个字符时,code返回的数值不准,建议少用code判断位置。Str(x,st)将数字x转化为字符串st将单个字符c转化为数字x:x:=ord(c)-48;将单个数字x转化为字符c:c:=chr(x);将字符串倒序存放在a数组中:A[0]:=length(st);Fori:=1toa[0]doA[i]:=ord(st[a[0]-i+1])-48;ISBN号码(NOIP2008)【题目描述】每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语音,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符之后的五位数字代表该书在该出版社的编号;最后一位为识别码。识别吗的计算方法如下:首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN码0-670-82162-4中的识别码4是这样得到的:对0670082162这9个数字,从左至右,分别乘以1,2,…9,再求和,即0×1+6×2+……+2×9=158,然后取158mod11的结果4作为识别码/你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码.【输入】只有一行,是一个字符序列,表示一本书的ISBN号码()。【输出】一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。【输入样例】0-670-82162-4【输出样例】Right【输入输出洋例2】0-670-82162-0【输出】0-670-82162-4数字反转(NOIP2011)【题目描述】给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。【输入】输入共1行,一个整数N。【输出】输出共1行,一个整数,表示反转后的新数。【输入样例】123【输出样例】321【输入输出样例2】输入:-380输出:-83【数据范围】-1,000,000,000≤N≤1,000,000,000乒乓球(noip2003)【题目描述沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。如果一局比赛刚开始,则此时比分为0比0。你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。【输入】每个输入包含若干行字符串(每行至多20个字母),字符串有大写的W、L和E组成。其中E表示比赛信息结束,程序应该忽略E之后的所有内容。【输出】输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是11分制下的结果,第二部分是21分制下的结果,两部分之间由一个空行分隔。【输入样例】WWLWE【输出样例】11:011:01:121:02:1统计单词数(NOIP2011)【题目描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。【输入】2行:第1行为一个字符串,其中只含字母,表示给定单词;第2行为一个字符串,其中只可能包含字母和空格,表示给定的文章。【输出】只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从0开始);如果单词在文章中没有出现,则直接输出一个整数-1。【输入样例】Totobeornottobeisaquestion【输出样例】20【输入输出样例1说明】输出结果表示给定的单词To在文章中出现两次,第一次出现的位置为0。【提示】【输入输出样例2】输入:toDidtheOttomanEmpireloseitspoweratthattime输出:-1【输入输出样例2说明】表示给定的单词to在文章中没有出现,输出整数-1。【数据范围】1≤单词长度≤10。1≤文章长度≤1,000,000。计算器的改良(NOIP2000)【题目描述】NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:4+3x=86a-5+1=2-2a-5+12Y=0ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及十、一、=这三个数学符号(当然,符号“一”既可作减号,也可作负号)。方程中并没有括号,也没有除号,方程中的字母表示未知数。【输入】输入一个一元一次方程,可认为输入的一元一次方程均为合法的,且有唯一实数解。【输出】将解方程的结果(精确至小数点后三位)输出。【输入样例】6a-5+1=2-2a【输出样例】字符串编辑【题目描述】从键盘输入一个字符串(长度<=255个字符),例如:’Thisisabook.’现对该字符串进行编辑,编辑功能有:D:删除一个字符,命令的方式为:??D?a?其中a为被删除的字符(D和a之间用空格隔开,以下均是)??例如:D?s?表示删除字符’s’,若字符串中有多个‘s’,则删除第一次出现的。????????如上例中删除的结果为:’Thiisabook.’I:插入一个字符,命令的格式为:??I?a1?a2?其中a1表示插入到指定字符前面,a2表示将要插入的字符。例如:I?s?d?表示在指定字符’s’的前面插入字符‘d’,若原串中有多个‘s’,则插入在最后一个字符的前面,如上例中:???原?串:’Thisisabook.’???插入后:’Thisidsabook.’?R:替换一个字符,命令格式为:???R?a1?a2?其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1则应全部替换。例如:原串:‘Thisisabook.’输入命令:R?o?e???替换后的字符串为:‘Thisisabeek.’在编辑过程中,若出现被改的字符不存在时,则给出提示信息”noexsit!”。【输入】输入包含两行,第一行为待编辑的字符串;第二行为对该字符串进行操作的命令字符串,其中命令均为大写字符,命令对象大小写均有可能,命令和命令对象间用一个空格隔开。【输出】输出只有一行,即编辑后的字符串【输入样例】ThisisabookIsd【输出样例】Thisidsabook高精度算法说明:typearr=array[0..maxlen]ofinteger;Readln(x);Fori:=1tolength(x)doA[i]:=ord(x[length(x)-i+1])-48;A[0]:=length(X);数x倒序存放在a数组中:(结果存放在C数组中)procedurejia(a,b:arr;varc:arr);vari,len:integer;beginfillchar(c,sizeof(c),0);ifa[0]>b[0]thenlen:=a[0]elselen:=b[0];fori:=1tolendobeginc[i]:=a[i]+b[i];c[i+1]:=c[i]div10;//进位c[i]:=c[i]mod10;end;ifc[len+1]>0theninc(len);c[0]:=len;end;、b数组时,保证数a>b,结果存放在C数组中。procedurejian(a,b:arr;varc:arr);vari,len:integer;beginfillchar(c,sizeof(c),0);len:=a[0];fori:=1tolendobeginifa[i]<b[i]thenbegina[i+1]:=a[i+1]-1;//借位处理a[i]:=a[i]+10;end;c[i]:=a[i]-b[i];end;ifc[len+1]>0theninc(len);c[0]:=len;end;{plus}(0<x<100)要求:结果仍然存放在a数组中。Procedurecheng1(x:longint;vara:arr);VarI,j,len:longint;BeginLen:=a[0];Fori:=1tolendoA[i]:=a[i]*x;//a内所有元素乘以xFori:=1tolendoIfa[i]>10thenbeginA[i+1]:=a[i+1]+a[i]div10;//进位处理A[i]:=a[i]mod10;End;Whilea[len+1]>0dobeginLen:=len+1;Ifa[len]>10thenbeginA[len+1]:=a[len]div10;A[len]:=a[len]mod10;End;End;End;:结果存放在c数组中。procedurecheng2(a,b:arr;varc:arr}vari,j,len:longint;beginfillchar(c,sizeof(c),0);fori:=1toa[0]doforj:=1tob[0]dobeginc[i+j-1]:=c[i+j-1]+a[i]*b[j];c[i+j]:=c[i+j]+c[i+j-1]div10;c[i+j-1]:=c[i+j-1]mod10;end;len:=a[0]+b[0];while(len>1)and(c[len]=0)dolen:=len-1;c[0]:=len;end;ex2麦森数(NOIP2003)【题目描述】形如2P-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2P-1不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。任务:输入P(1000<P<3100000),计算2P-1的位数和最后500位数字(用十进制高精度数表示)【输入】只包含一个整数P(1000<P<3100000)【输出】第一行:十进制高精度数2P-1的位数。第2-11行:十进制高精度数2P-1的最后500位数字。(每行输出50位,共输出10行,不足500位时高位补0)不必验证2P-1与P是否为素数。【输入样例】1279【输出样例】Hanoi双塔问题(NOIP2007)【题目描述】给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有空的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将这些圆盘移到C柱上,在移动过程中可放在B柱上暂存。要求:(1)每次只能移动一个圆盘;(2)A、B、C三根细柱上的圆盘都要保持上小下大的顺序;任务:设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An。【输入】一个正整数n,表示在A柱上放有2n个圆盘。【输出】仅一行,包含一个正整数,为完成上述任务所需的最少移动次数An。【输入样例】1【输出样例】2【输入输出样例2】2【输出】6【限制】对于50%的数据,1<=n<=25对于100%数据,1<=n<=200【提示】设法建立An与An-1的递推关系式。,、y的最小公倍数functionlcm(x,y:longint):longint;vartemp:longint;beginifx<ythenbegintemp:=x;x:=y;y:=temp;end;lcm:=x;whilelcmmody<>0doinc(lcm,x);end;functiongcd(x,y:longint):longint;beginifb=0thengcd:=xelsegcd:=gcd(y,xmody);end;3、:functionprime(n:integer):Boolean;varI:integer;beginprime:=true;forI:=2totrunc(sqrt(n))doifnmodI=0thenbeginprime:=false;break;end;end;,求出1~n中的所有素数。proceduresushu(n);vari,j:longint;f:array[1..n]ofboolean;beginfillchar(f,sizeof(f),true);f[1]:=false;fori:=2totrunc(sqrt(n))doiff[i]thenforj:=2tondividof[i*j]:=false;end;最大公约数与最小公倍数(NOIP2001)【题目描述】二个正整数x0,y0(2≤x0≤100000,2≤y0≤1000000),求满足下列条件的P,Q的个数。条件:,Q是正整数;,Q以x0为最大公约数,以y0为最小公倍数。试求:满足条件的所有可能的两个正整数的个数。【输入】输入x0和y0【输出】满足条件的所有可能的两个正整数的个数【输入样例】360【输出样例】4【提示】样例说明:此时的PQ分别为:360**********:procedureqsort(l,r:integer);vari,j,mid:integer;begini:=l;j:=r;mid:=a[(l+r)div2];{将当前序列在中间位置的数定义为中间数}repeatwhilea[i]<middoinc(i);{在左半部分寻找比中间数大的数}whilea[j]>middodec(j);{在右半部分寻找比中间数小的数}ifi<=jthenbegin{若找到一组与排序目标不一致的数对则交换它们}swap(a[i],a[j]);inc(i);dec(j);{继续找}end;untili>j;ifl<jthenqsort(l,j);{若未到两个数的边界,则递归搜索左右区间}ifi<rthenqsort(i,r);end;{sort}:proceduresort;vari,j,temp:integer;beginfori:=1ton-1doforj:=i+1tondoifa[i]>a[j]thenbegintemp:=a[i];a[i]:=a[j];a[j]:=temp;end;end;;vari,j,temp:integer;beginfori:=1ton-1doforj:=1ton-idoifa[j]<a[j+1]thenbegintemp:=a[j];a[j]:=a[j+1];a[j+1]:=temp;end;{每次比较相邻元素的关系}end;。例:输入n个范围在0..1000之间的整数,从小到大排序输出。VarI,n,x:integer;a:array[0..1000]ofinteger;beginreadln(n);fillchar(a,sizeof(a),0);fori:=1tondobeginread(x);a[x]:=a[x]+1;end;fori:=1to1000doifa[x]<>0thenwrite(I,’‘);:a,b均为已按从小到大排好序的两个数组,将其合并为有序的一个数组。procedureguibin(a,b:arr;la,lb:longint);vari,j,k:longint;beginfillchar(c,sizeof(c),0);i:=1;j:=1;k:=0;repeatk:=k+1;ifa[i]<b[j]thenbeginc[k]:=a[i];i:=i+1;endelsebeginc[k]:=b[j];j:=j+1;end;until(i>la)or(j>lb);ifi<=lathenforj:=itoladobegink:=k+1;c[k]:=a[i];end;ifj<=lbthenfori:=jtolbdobegink:=k+1;c[k]:=b[j];end;end;校门外的树(NOIP2005)【题目描述】某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。【输入】第一行有两个整数L(1<=L<=10000)和M(1<=M<=100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。【输出】一行,这一行只包含一个整数,表示马路上剩余的树的数目。【输入样例】5003150300100200470471【输出样例】298【数据规模】对于20%的数据,区域之间没有重合的部分;对于其它的数据,区域之间有重合的情况。明明的随机数(NOIP2006)【题目描述】明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。【输入】有2行,第1行为1个正整数,表示所生成的随机数的个数:N第2行有N个用空格隔开的正整数,为所产生的随机数。【输出】2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。【输入样例】102040326740208930040015【输出样例】8152032406789300400奖学金(NOIP2007)【题目描述】某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分)是:72795279这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是:52797279则按输出错误处理,不能得分。【输入】第1行为一个正整数n,表示该校参加评选的学生人数。第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为l~n(恰好是输入数据的行号减1)。所给的数据都是正确的,不必检验。【输出】共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。【输入样例1】6906780876691788991889977678964788998【输出样例1】62654264325822441237【输入样例2】8808989889878906780876691788991889977678964788998【输出样例2】82652264626412585258【限制】50%的数据满足:各学生的总成绩各不相同;100%的数据满足:6<=n<=300分数线划定(NOIP2009)【题目描述】世博会志愿者的选拔工作正在A市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。【输入】第一行,两个整数n,m(5≤n≤5000,3≤m≤n),中间用一个空格隔开,其中n表示报名参加笔试的选手总数,m表示计划录取的志愿者人数。输入数据保证m*150%向下取整后小于等于n。第二行到第n+1行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000≤k≤9999)和该选手的笔试成绩s(1≤s≤100)。数据保证选手的报名号各不相同。【输出】第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。【输入样例】63100090323988239095723184100595100188【输出样例】885100595239095100090100