CCF GESP 2025年12月认证 C++ 4级
三
编程题
第 1 题
建造
题目描述
小 A 有一张 $M$ 行 $N$ 列的地形图,其中第 $i$ 行第 $j$ 列的数字 $a_{ij}$ 代表坐标 $(i,j)$ 的海拔高度。
停机坪为一个 3×3 的区域,且内部所有 9 个点的最大高度和最小高度之差不超过 $H$
小 A 想请你计算出,在所有适合建造停机坪的区域中,区域内部 9 个点海拔之和最大是多少。
输入格式
第一行三个正整数 $M,N,H$,含义如题面所示。
之后 $M$ 行,第 $i$ 行包含 $N$ 个整数 $a_{i1},a_{i2},…,a_{iN}$,代表坐标 $(i,j)$ 的高度。
数据保证总存在一个适合建造停机坪的区域。
输出格式
输出一行,代表最大的海拔之和。
样例说明
样例 1
输入:
5 5 3
5 5 5 5 5
5 1 5 1 5
5 5 5 5 5
5 2 5 2 5
3 5 5 5 2
输出:
40
数据范围
对于所有测试点,保证 $1≤M,N≤10^3,1≤H,a_{ij} ≤ 10^5$。
第 2 题
优先购买
题目描述
小 A 有 $M$ 元预算。商店有 $N$ 个商品,每个商品有商品名 $S$、价格 $P$ 和优先级 $V$ 三种属性,其中 $V$ 为正整数,且 $V$ 越小代表商品的优先级越高。
小 A 的购物策略为:
- 总是优先买优先级最高的东西;
- 如果有多个最高优先级商品,购买价格最低的;
- 如果有多个优先级最高且价格最低的商品,购买商品名字典序最小的。
小 A 想知道能购买哪些商品。
输入格式
第一行两个正整数 $M,N$,代表预算和商品数。
之后 $N$ 行,每行一个商品,依次为 $S_i P_i V_i$,代表第 $i$ 个商品的商品名、价格、优先级。
数据保证不存在两个名字相同的商品。
输出格式
按照字典序从小到大的顺序,输出所有购买商品的商品名。
样例说明
样例 1
输入:
20 4
apple 6 8
bus 15 1
cab 1 10
water 4 8
输出:
bus
cab
water
数据范围
对于所有测试点,保证 $1 ≤ |S_i| ≤ 10, 1 ≤ M, P_i ≤ 10^5, 1 ≤ N ≤ 10^3, 1 ≤ V_i ≤ 10$。商品名仅由小写字母组成且不存在两个相同的商品名。
编程题部分已到底了。