编程题 共5道

01 02 03 04 05

109 | 202409C语言三级真题-考试
编程题 共5道
01

爆气球

爆气球对孩子们来说是很好玩的游戏。假设有 n 只气球被布置在一条直线上,游戏的目标很简单,就是爆掉尽可能多的气球。但是这里我们加一条特殊的规则 —— 你只能跳一次。我们假设聪明的娃穿了件浑身带刺的衣服,跳到某个位置,躺平,这样气球只要碰到娃身体的任何部分都会立刻爆炸。那么你的任务就是告诉娃应该跳到哪里,才能一次爆掉最多的气球。

时间限制:4000

内存限制:262144

输入

输入第一行两个正整数:n(≤ 105)为一条线上布置的气球的数量;h(≤ 103)为孩子伸直双臂能达到的高度。第二行给出 n 个整数,每个对应一只气球在直线轴上的坐标。题目保证坐标按递增顺序给出,所有坐标值在 [-106, 106] 区间内。

输出

在一行中输出孩子跳跃的位置坐标,使得孩子跳到这个位置然后躺平能够爆掉身下最多的气球;随后输出能爆掉的气球的最大数量。如果这个坐标不唯一,输出最小的那个值。 一行中的数间应有 1 个空格。

样例输入

11 120

-120 -40 0 80 122 140 160 220 240 260 300

样例输出

120 5

提示

注意:跳到从 120 到140,或 240 到 260 之间的任何位置,都可以爆掉 5 只气球,所以 120 作为最小的坐标被输出。

0分
登录后作答
02 暂无 0分
登录后作答
03

有多少坑

大雨过后,一些高低不平的地方就会形成积水,俗称为“坑”。这里我们将问题简化为只考虑一段路面的横截面。我们将这一段截面上的土地分割成单位宽度的窄条,测量出每个窄条的高度。假设有无穷多的水量从天而降,请你计算一下,这段路面上会形成多少个水坑?坑的最大深度是多少毫米?

时间限制:7000

内存限制:262144

输入

输入第一行给出一个正整数 N(≤ 100000)。随后一行给出 N 个非负整数,为路面横截面总左到右的单位宽度窄条的高度,以毫米为单位,不超过 1000。

输出

输出分两行,第一行输出水坑的个数,第二行输出所有水坑中最大的深度,以毫米为单位。 注意:即使两个相邻的水坑有相同高度的水平面,只要之间有窄条相隔,就算是两个水坑。

样例输入

12

1 4 2 10 7 1 2 1 8 3 1 2

样例输出

3

7

提示

样例说明: 下图给出了样例中得到的水坑示意图。

0分
登录后作答
04

势均力敌

用 n (> 2) 个不同的个位数字组成一个 n 位数,显然有 n! 个不同的结果。可以证明,这 n! 个数字可以被分为势均力敌的两组 —— 即平方和相等、且个数也相等的两组。

本题就请你用程序验证一下这个结论。

因为本题是一道简单题,所以规模很小,只考虑 n ≤ 4 的情况。

时间限制:4000

内存限制:262144

输入

输入第一行给出正整数 n(2 < n ≤ 4),随后一行给出 n 个不同的、在区间 [1, 9] 内的个位数字,其间以空格分隔。

输出

将所有组成的 n! 个不同的 n 位数分为平方和相等、且个数也相等的两组。但你只需要输出其中一组就可以了。每个数字占一行,共输出 n!/2 行。 注意:解可能不唯一,输出任何一组解就可以。

样例输入

3

5 2 1

样例输出

125

512

251

0分
登录后作答
05

买地攻略

数码城市有土地出售。待售的土地被划分成若干块,每一块标有一个价格。这里假设每块土地只有两块相邻的土地,除了开头和结尾的两块是只有一块邻居的。每位客户可以购买多块连续相邻的土地。

现给定这一系列土地的标价,请你编写程序,根据客户手头的现金量,告诉客户有多少种不同的购买方案。

时间限制:8000

内存限制:262144

输入

输入首先在第一行给出两个正整数:N(≤ 104)为土地分割的块数(于是这些块从 1 到 N 顺次编号);M(≤ 109)为客户手中的现金量。 随后一行给出 N 个正整数,其中第 i 个数字就是第 i 块土地的标价。 题目保证所有土地的总价不超过 109。

输出

在一行中输出客户有多少种不同的购买方案。请注意客户只能购买连续相邻的土地。

样例输入

5 85

38 42 15 24 9

样例输出

11

提示

样例解释: 这 11 种不同的方案为: 38 42 15 24 9 38 42 42 15 42 15 24 15 24 15 24 9 24 9

0分
登录后作答