CCF GESP 2024年3月认证 C++ 4级

编程题
共 2 道 每题 25 分 共计 50 分
第 1 题
相似字符串
时间限制:1s 内存限制:512MB

题目描述

对于两个字符串 $A$ 和 $B$,如果 $A$ 可以通过删除一个字符,插入一个字符,修改一个字符变成 $B$,那么我们说 $A$ 和 $B$ 是相似的。

比如 $\texttt{apple}$ 可以通过插入一个字符变成 $\texttt{applee}$,可以通过删除一个字符变成 $\texttt{appe}$,也可以通过修改一个字符变成 $\texttt{bpple}$。因此 $\texttt{apple}$ 和 $\texttt{applee}$、$\texttt{appe}$、$\texttt{bpple}$ 都是相似的。但 $\texttt{applee}$ 并不能 通过任意一个操作变成 $\texttt{bpple}$,因此它们并不相似。

特别地,两个完全相同的字符串也是相似的。

给定 $T$ 组 $A,B$,请你分别判断它们是否相似。

输入格式

第一行一个正整数 $T$。

接下来 $T$ 行,每行两个用空格隔开的字符串 $A$ 和 $B$。

保证 $T \leq 100$,$A$,$B$ 的长度不超过 $50$。保证 A 和 B 只包含小写字母

输出格式

输出 $T$ 行,对于每组 $A,B$,如果它们相似,则输出 similar,否则输出 not similar

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

样例说明

样例 1

输入:
5
apple applee
apple appe
apple bpple
applee bpple
apple apple
输出:
similar
similar
similar
not similar
similar
第 2 题
做题
时间限制:1s 内存限制:512MB

题目描述

小杨同学为了提高自己的实力制定了做题计划,在第 $k$ 天时,他必须要完成 $k$ 道题,否则他就会偷懒。

小杨同学现在找到了一个题库,一共有 $n$ 套题单,每一套题单中有一定数量的题目。但是他十分挑剔,每套题单他只会使用一次,每一天也只能使用一套题单里的题目,之后那套题单就会弃之不用。对于每套题单,他不必完成题单内所有的题。

那么问题来了,小杨同学最多做题几天才偷懒呢?

输入格式

第一行,一个整数为 $n$,表示有多少套题单。

第二行, $n$ 个整数 $a_1, a_2, \dots a_n$,分别表示每套题单有多少道题。

输出格式

输出一行,小杨同学偷懒前最多做题天数。

样例说明

样例 1

输入:
4
3 1 4 1
输出:
3

数据范围

对于全部数据,保证有 $1 \leq n \leq 10^6$,$1 \leq a_i \leq 10^9$。

编程题部分已到底了。