CF1197A.DIY Wooden Ladder
入门
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Let's denote a k-step ladder as the following structure: exactly k+2 wooden planks, of which
- two planks of length at least k+1 — the base of the ladder;
- k planks of length at least 1 — the steps of the ladder;
Note that neither the base planks, nor the steps planks are required to be equal.
For example, ladders 1 and 3 are correct 2-step ladders and ladder 2 is a correct 1-step ladder. On the first picture the lengths of planks are [3,3] for the base and [1] for the step. On the second picture lengths are [3,3] for the base and [2] for the step. On the third picture lengths are [3,4] for the base and [2,3] for the steps.

You have n planks. The length of the i-th planks is ai. You don't have a saw, so you can't cut the planks you have. Though you have a hammer and nails, so you can assemble the improvised "ladder" from the planks.
The question is: what is the maximum number k such that you can choose some subset of the given planks and assemble a k-step ladder using them?
我们定义一个 k-级梯子为如下结构:恰好由 k+2 根木板组成,其中
- 两根长度至少为 k+1 的木板——作为梯子的底边;
- k 根长度至少为 1 的木板——作为梯子的踏板;
注意:底边木板之间、踏板木板之间均不要求长度相等。
例如,图中梯子 1 和 3 是合法的 2-级梯子,而梯子 2 是合法的 1-级梯子。第一幅图中,底边木板长度为 [3,3],踏板木板长度为 [1];第二幅图中,底边木板长度为 [3,3],踏板木板长度为 [2];第三幅图中,底边木板长度为 [3,4],踏板木板长度为 [2,3]。

你有 n 根木板,第 i 根木板的长度为 ai。你没有锯子,因此无法切割已有木板;但你有锤子和钉子,因此可以用这些木板组装一个临时的“梯子”。
问题是:你能从中选出若干木板并组装成一个 k-级梯子的最大 k 值是多少?
输入格式
The first line contains a single integer T (1≤T≤100) — the number of queries. The queries are independent.
Each query consists of two lines. The first line contains a single integer n (2≤n≤105) — the number of planks you have.
The second line contains n integers a1,a2,…,an (1≤ai≤105) — the lengths of the corresponding planks.
It's guaranteed that the total number of planks from all queries doesn't exceed 105.
第一行包含一个整数 T(1≤T≤100),表示查询次数。各次查询相互独立。
每次查询包含两行。第一行包含一个整数 n(2≤n≤105),表示你拥有的木板数量。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤105),表示对应木板的长度。
保证所有查询中木板总数不超过 105。
输出格式
Print T integers — one per query. The i-th integer is the maximum number k, such that you can choose some subset of the planks given in the i-th query and assemble a k-step ladder using them.
Print 0 if you can't make even 1-step ladder from the given set of planks.
输出 T 个整数——每个查询对应一个整数。其中第 i 个整数表示最大的整数 k,使得你可以从第 i 个查询所给的木板中选出某个子集,并用它们搭建一个 k 级梯子。
若无法用给定的木板搭建出哪怕一个 1 级梯子,则输出 0。
输入输出样例
输入#1
4 4 1 3 1 3 3 3 3 2 5 2 3 3 4 2 3 1 1 2
输出#1
2 1 2 0
说明/提示
Examples for the queries 1−3 are shown at the image in the legend section.
The Russian meme to express the quality of the ladders:

查询 1–3 的示例见图注部分的图片。
表达梯子质量的俄罗斯网络迷因:

输入解题思路,AI测评打分。不知道怎么写?