CF611E New Year and Three Musketeers

题目描述

你知道“三剑客”的故事吗?不管怎样,现在你必须帮助他们了。 Richelimakieu 是 Bearis 城中的一位红衣主教。他找到了三位勇士,并称他们为三剑客。Athos 的力量为 $a$,Borthos 的力量为 $b$,Caramis 的力量为 $c$。 2015 年即将结束,但还有 $n$ 个罪犯尚未被击败。第 $i$ 个罪犯的力量为 $t_i$。击败强大的罪犯很困难——也许剑客们需要联手作战。 Richelimakieu 将指挥三剑客的行动。每个小时,每个剑客可以选择不做任何事或被分配去对抗一个罪犯。两位或三位剑客可以被分配去对抗同一个罪犯,此时他们的力量会相加。一个罪犯无论有多少剑客对抗,都可以在一小时之内被击败。如果某个罪犯的力量大于对抗他的所有剑客力量之和,那么罪犯就会获胜,这是绝对不允许的! 换句话说,击败一个罪犯有三种方式: - 某个力量为 $x$ 的剑客可以在一小时之内击败力量不超过 $x$ 的罪犯。因此,Athos 在一小时内可以击败第 $i$ 个罪犯仅当 $t_{i} \leq a$。 - 两位剑客可以联手,在一小时之内击败力量不超过两人力量之和的罪犯。例如,Athos 与 Caramis 可以击败第 $i$ 个罪犯仅当 $t_{i} \leq a + c$。注意,第三位剩下的剑客可以选择不做任何事,或者去对抗另一个罪犯。 - 同理,三位剑客可以联手,在一小时之内击败力量不超过三人力量之和的罪犯,即 $t_{i} \leq a+b+c$。 Richelimakieu 不希望三剑客在新年夜还在战斗。因此,他必须协调三剑客的行动,最小化击败所有罪犯所需的小时数。 请你计算击败所有罪犯所需的最少小时数。如果三剑客无法击败所有罪犯,则输出 “-1”。

输入格式

输入的第一行包含一个整数 $n$($1 \leq n \leq 200000$),表示罪犯的数量。 第二行包含三个整数 $a$、$b$、$c$($1 \leq a, b, c \leq 10^8$),表示三剑客的力量。 第三行包含 $n$ 个整数 $t_1, t_2, \dots, t_n$($1 \leq t_{i} \leq 10^8$),表示每个罪犯的力量。

输出格式

输出一行答案。 如果无法击败所有罪犯,输出 “-1”。否则,输出三剑客击败所有罪犯所需的最少小时数。

说明/提示

在第一个样例中,Athos 的力量为 $10$,Borthos 的力量为 $20$,Caramis 的力量为 $30$。他们可以在两小时内击败所有罪犯: - Borthos 与 Caramis 应联合对抗一名力量为 $50$ 的罪犯。在同一小时,Athos 可以击败一名力量为 $1$ 的罪犯。 - 还剩下三个力量均为 $1$ 的罪犯,每个剑客各自击败一人,在第二小时完成。 在第二个样例中,三剑客必须一起对抗一名力量为 $51$ 的罪犯,用时一小时。第二小时,三人可以各自击败一个罪犯。第三小时还剩一名罪犯,任意一位剑客都可以击败。 由 ChatGPT 5 翻译