2024.09 电子学会青少年软件编程(C/C++)等级考试试卷(三级)
编程题(共 5 题)
1 爆气球
爆气球对孩子们来说是很好玩的游戏。假设有 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 作为最小的坐标被输出。
2 乘法小宇宙
一个 n 位数的正整数 A=anan-1...a1 和另一个 2 位数的正整数 B=b2b1 相乘,其乘法展开式如下图所示:
其中 C=cn+1cn...c1 是 A 与 b1 相乘的结果,D=dn+1dn...d1 是 A 与 b2 相乘的结果,P=pn+2pn+1...p1 是 A 与 B 相乘的结果。
若上图中的每一位数字都在一个给定的非零个位数字集合 S 里,则称 A 和 B 属于同一个乘法小宇宙 S。
本题给定乘法小宇宙 S 和 A 的位数,请你找出同属于这个乘法小宇宙中的所有 A 和 B。
时间限制:6000 内存限制:65536
输入
输入在一行中给出两个正整数 n(< 8)和 K(≤ 5),分别是 A 的位数和乘法小宇宙 S 中元素的个数。第二行给出 K 个 (0, 10) 区间内的整数,为 S 中的元素。题目保证没有重复元素。数字间以空格分隔。
输出
按照 A 的非递减序输出所有同属于这个乘法小宇宙中的 A 和 B,每行输出一对,数字间以 1 个空格分隔,行首尾不得有多余空格。对同一个 A,按 B 的递增序输出。若没有解,则输出 `No Solution`。
样例输入
样例#1:
4 5
4 2 1 6 5
样例#2:
3 4
9 2 5 6
样例输出
样例#1:
5556 44
6111 24
6111 42
样例#2:
No Solution
================================================
答案和更多内容请查看网站:【试卷中心 -- C/C++编程 三级】
青少年软件编程历年真题模拟题实时更新
================================================