摘要:字典序dict.pas【问题描述】输入文件中包含几行数据,每行又包含多个正整数。你的任务把这些数据(每行数据看作一个整体)按字典序进行排序。这里的字典序是指,先按每行最左边的数进行排序,若有相同的则比较它们的第二个数,以些类推只到比较出大小。例如下面的数据:14 38 11 8927 3427 12 342792 2 3 117 2按此字典排序后的结果为:14 38 11 8917 22727 12 3427 3492 2 3 1【输入格式】dict.in输入的第一行是一个整数N(1=0 do begin Inc(j); A[I, j] := x; Read(x); End; A[I, 0]
阅读全文
摘要:分数线划定score.pas【问题描述】世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。【输入格式】score.in第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选
阅读全文
摘要:聪明的质检员clever.pas【问题描述】小 T 是一名质量监督员,最近负责检验一批矿产的质量。这批矿产共有n个矿石,从1到n逐一编号,每个矿石都有自己的重量wi以及价值vi。检验矿产的流程是:1、给定m个区间[Li,Ri];2、选出一个参数W;3、对于一个区间[Li,Ri],计算矿石在这个区间上的检验值Yi:Yi = ∑1*∑vj,j∈[Li, Ri]且wj ≥ W,j是矿石编号这批矿产的检验结果Y 为各个区间的检验值之和。即:Y = ∑Yi,i ∈[1, m]若这批矿产的检验结果与所给标准值S相差太多,就需要再去检验另一批矿产。小T不想费时间去检验另一批矿产,所以他想通过调整参数W的值,
阅读全文
摘要:月考mtest.pas【问题描述】在上次的月考中Bugall同学违反了考场纪律还吃了处分,更可气的是在第二天的校会时 间学校就此事做了全校通报。现已知在当天校会时间有总共N个同学听到了有关Bugall的处分决定。Bugall同学在铁一有M个朋友,这M个人中有的可能听到了当天的处分决定,有的可能没有听到,现在Bugall同学想知道他有几个朋友听到了当天的处分通报。【输入格式】mtest.in第一行为一个整数N,从第2行到N+1行,每行用一个长度不超过200的字符串表示 一个人的名字。(0<n<=100000)第N+2行为一个整数M,从第N+3行到N+M+2行,每行用一个长度不超过20
阅读全文
摘要:山头狙击战battle.pas【问题描述】Lucky为了掩护大部队,单枪匹马同敌人周旋,后来被敌人包围在某山头……等等,为什么怎么听怎么像狼牙山五壮士!不过不用着急,这次Lucky携带了足够的弹药,完全可以将涌上来的敌人一个一个干掉。Lucky是个神枪手,只要他的枪膛中有子弹,他就能将在他射程m(用从敌人位置到山头的直线距离算)以内的一个敌人瞬间射杀。但如果在射程内没有敌人,出于节约子弹考虑和面子问题,Lucky会等待敌人靠近然后射击。正当Lucky为自己的强大而自我膨胀时,他忽然发现了一个致命的失误:他携带的枪是单发枪,每射出一发子弹都必须花k秒钟的时间装子弹。而凶残的敌人才不会花时间等你换
阅读全文
摘要:象棋比赛chess.pas【问题描述】有N个人要参加国际象棋比赛,该比赛要进行K场对弈。每个人最多参加两场对弈,最少参加零场对弈。每个人都有一个与其他人都不相同的等级(用一个正整数来表示)。在对弈中,等级高的人必须用黑色的棋子,等级低的人必须用白色的棋子。每个人最多只能用一次黑色的棋子和一次白色的棋子。为了增加比赛的客观度,观众希望K场对弈中双方的等级差的总和最小。比如有7个选手,他们的等级分别是 30,1 7,26,41,19,38,18,要进行3场比赛。最好的安排是Player 2 vs Player 7,Player7 vs Player 5,Player 6 vs P1ayer 4,此
阅读全文
摘要:排座椅seats.pas【问题描述】上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳。同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设置了K条横向的通道,L条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。请你帮忙给小雪编写一个程序,给出最好的通道划分方案。在
阅读全文
摘要:士兵排队soldier.pas【问题描述】在XXX国家,有N个处于不同位置的士兵。该国上的地方都用两个坐标(X,Y)来表示。士兵能进行一次移动,每个士兵都可向上、向下、向左、或向右移动一个单位长,这样他就能把自己的X或Y改变1或-1。士兵们想进入一个水平线,彼此靠近,这样他们的最后位置就是(X,Y)、(X+1,Y)、…、(X+N,Y)。水平线上的士兵的最后顺序以及整数X和Y,都是任意的。现在目标是求如此配置士兵的最少移动数。两个或两个以上的士兵在同一时间不处于同一位置。【输入格式】soldier.in输入文件的第一行含有一个整数N,1 <= N <=10000,N为士兵的数量。输入
阅读全文
摘要:水王争霸bbs.pas【问题描述】众所周知,论坛上有很多水王,他们的发贴数是如此之多,以至于必须要用高精度数才能保存。为了迎接国庆,论坛决定举行一次水王争霸赛,比赛的规则是将这些水王截止到20013年11月22日23时59分59秒这一刻所发的总贴数从大到小进行排序。每个水王当然都想取得尽量靠前的名次,所以他们竭尽全力,不择手段地进行灌水。终于,激动人心的一刻到来了,20013年11月23日0时0分0秒,你作为裁判得到了每个水王的发贴数,现在,你的任务是公正地把这些水王按照发贴数从大到小进行排序。【输入格式】bbs.in输入的第一行是一个1到1000的整数N,表示总共有N位水王参加了争霸赛。以下
阅读全文
摘要:黄金分割(gold.pas)【问题描述】两个数之比越接近黄金分割比例,就越完美。现在给你N个数,请挑出一对最完美的数。【输入文件】gold.in第一行,一个数n表示数的个数;(2<=n<=106)第二行,共n个数,表示每个数,两个数之间用空格分开。(0<=xi<=106)【输出文件】gold.out两行,每行一个数,表示最完美的一对数。【样例输入】42 3 4 6【样例输出】23【说明】你可以认为黄金分割比就是0.6180339887498949
阅读全文
摘要:数字距离dist.pas【问题描述】有一组数互不相同的数,规定两个元素之间的距离为两个元素序号的差的绝对值。求任意两个元素之间的距离。【输入文件】dist.in第一行,一个数n,表示这组数的个数。(2<=N<=106)第二行,共n个数,数与数之间有一个空格。(|xi|<=109)第三行,一个数q,表示询问q次(1<=q<=106)以下q行,每行两个数a, b(保证这两个数都在这组数中)【输出文件】dist.out共q行,每行一个数,表示两个数之间的距离。【样例输入】51 3 5 6 818 3【样例输出】3
阅读全文
摘要:区间region.pas【问题描述】给定n个闭区间 [ai,bi], i=1,2,...,n. 这些区间的和可以用两两不相交的闭区间的和来表示。你的任务是找到这样的区间数目最少的表示,且把它们按升序的方式写到输出文件中。当且仅当a <= b < c <= d时,区间[a; b],[c; d]才是升序写一个程序完成以下任务:读取区间,计算出满足上述条件的两两不相交的区间,把找到的区间按升序输出。【输入格式】region.in第一行只有一个数n, 3 <= n <= 50000,代表区间数.第I+1行有两个数ai,bi,之间用一个空格隔开,分别表示区间[ai,bi]的
阅读全文
摘要:管道铺设pipe.pas【问题描述】石油公司计划建造一条由南向北的主输油管道。该管道要穿过一个有n 口油井的油田。从每口油井都要有一条输油管道沿最短路经(或东或西)与主管道相连。如果给定n口油井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置,使各油井到主管道之间的输油管道长度总和最小。现在给定n 口油井的位置,请计算各油井到主管道之间的输油管道最小长度总和。【输入格式】pipe.in文件的第1行是油井数n,1≤n≤10000。接下来n行是油井的位置,每行2个整数x和y,-10000≤x,y≤10000。【输出格式】pipe.out只有一个数,表示油井到主管道
阅读全文
摘要:化装晚会party.pas【问题描述】万圣节又到了!Farmer John打算带他的奶牛去参加一个化装晚会,但是,FJ只做了一套能容 下两头总长不超过S(1 <= S <= 1,000,000)的牛的恐怖服装。FJ养了N(2 <= N <= 20,000)头按1..N顺序编号的奶牛,编号为i的奶牛的长度为L_i(1 <= L_i <= 1,000,000)。如果两头奶牛的总长度不超过S,那么她们就能穿下这套服装。FJ想知道,如果他想选择两头不同的奶牛来穿这套衣服,一共有多少种满足条件的方案。【输入格式】party.in第1行: 2个用空格隔开的整数:N 和
阅读全文
摘要:无穷的序列unlessseq.pas【问题描述】有一个无穷序列如下:110100100010000100000…请你找出这个无穷序列中指定位置上的数字。【输入格式】unlessseq.in第一行一个正整数N (N≤1500000),表示询问次数;接下来的N行每行一个正整数Ai(Ai≤109),Ai表示在序列中的位置。【输出格式】unlessseq.outN行,每行为0或l,表示序列第Ai位上的数字。【样例输入】431476【样例输出】0010
阅读全文
摘要:奖学金Scholarship.pas【问题描述】某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分)
阅读全文
摘要:数字排序numSort.pas【问题描述】输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是对这些分割得到的整数依从小到大的顺序排序。【输入格式】numSort.in输入数据包含多行,每行为一串数字(数字之间没有空格),这行数字的长度不大于106。输入数据保证:分割得到的非负整数不会大于109;输入数据不可能全由‘5’组成。处理到文件结束为止。【输出格式】numSort.out对每行数字串进行分割并从小到大排序,输出排序后的结
阅读全文
摘要:查找数字findnum.pas【问题描述】有一组数,请找出任意一个数在数组中的个数。【输入文件】findnum.in第一行,一个数n,表示这组数的个数。(2<=N<=106)第二行,共n个数,数与数之间有一个空格。(|xi|<=109)第三行,一个数q,表示询问q次(1<=q<=106)以下q行,每行一个数a【输出文件】findnum.out共q行,每行一个数,表示这个数在数组中的个数。【样例输入】51 3 3 6 8283【样例输出】12
阅读全文
摘要:积木分发toybrick.pas【问题描述】歌手Pancakes到幼儿园跟小朋友玩,她到达的时候小朋友们正在争积木,小朋友都想要更多的积木砌一个自己喜欢的图形,砌完就可以和Pancakes合照。同时,Pancakes手上还有一些积木,她可以把手上的这些积木全部给一个小朋友,然后等该小朋友砌完后就可以收回所发的积木和该小朋友原先手上的积木。但她不知道能否让所有的小朋友都和她合照,聪明的你可以帮助她吗?【输入格式】toybrick.in输入包含多个数据。每个数据的第1行是两个正整数n和s,1≤n≤100000,1≤s≤100000,表示一共有n位小朋友,Pancakes手上有s块积木。以下有n行,
阅读全文
摘要:木棍分割stick.pas【问题描述】有n根木棍,第i根木棍的长度为Li,n根木棍依次连结在一起,总共有n-1个连接处.现在允许你最多砍断m个连接处,砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长度最小,并且输出使得总长度最大的一段长度最小。【输入格式】stick.in输入文件第一行有2个数n,m接下来n行每行一个正整数Li,表示第i根木棍的长度。【输出格式】stick.out一个数,表示总长度最大的一段的长度最小值。【样例输入】3 21110【样例输出】10【数据范围】n<=50000,0<=m<=min(n-1,1000)1<=Li<=1000
阅读全文
摘要:月度花费expense.pas【问题描述】Farmer John是一个令人惊讶的会计学天才,他已经明白了他可能会花光他的钱,这些钱本来是要维持农场每个月的正常运转的。他已经计算了他以后 N(1<=N<=100,000)个工作日中每一天的花费moneyi(1<=moneyi<=10,000),他想要为他连续 的M(1<=M<=N)个被叫做“清算月”的结帐时期做一个预算,每一个“清算月”包含一个工作日或更多连续的工作日,每一个工作日都仅被包 含在一个“清算月”当中。FJ的目标是安排这些“清算月”,使得每个清算月的花费中最大的那个花费达到最小,从而来决定他的月度支
阅读全文
摘要:突击战commando.pas【问题描述】你有n个部下,每个部下需要完成一项任务。第i个部下需要你花Bi分钟交代任务,然后他会立刻独立地,无间断的执行Ji分钟后完成任务。你需要交代任务的顺序,使得所有的任务尽早执行完毕。注意,不能同时给2个部下交代任务,但是部下可以同时执行各自的任务。【输入格式】commando.in输入数据包括多组数据,每组数据的第一行为部下的个数N(1≤N≤1000);以下N行有2个正整数B和J(1≤B≤1000,1≤J≤1000),即交代任务的时间和执行任务的时间。输入结束标志符为N=0。【输出格式】commando.out对于每组数据,输出(以第i组数据为例):Cas
阅读全文
摘要:划分数列seqa.pas【问题描述】给你一个有n个正整数元素的数列,要求把它划分成k段,使每段元素和的最大值最小。【输入格式】sqea.in输入第一行两个正整数n,k第二行为此数列ai。【输出格式】sqea.out一个数,表示每段元素和的最大值最小的那个数。【样例输入】5 22 1 3 4 5【样例输出】9【数据范围】n <= 100000, k <= n, 0<=ai <= 109
阅读全文
摘要:挤奶时间milkprod.pas【问题描述】贝茜是一只非常努力工作的奶牛,她总是专注于提高自己的产量。为了产更多的奶,她预计好了接下来的N (1 ≤ N ≤ 1,000,000)个小时,标记为0..N-1。Farmer John 计划好了 M (1 ≤ M ≤ 1,000) 个可以挤奶的时间段。每个时间段有一个开始时间(0 ≤ 开始时间 ≤ N), 和一个结束时间 (开始时间 < 结束时间 ≤ N), 和一个产量 (1 ≤ 产量 ≤ 1,000,000) 表示可以从贝茜挤奶的数量。Farmer John 从分别从开始时间挤奶,到结束时间为止。每次挤奶必须使用整个时间段。但即使是贝茜也有她
阅读全文