D. 姓名团

    Type: Default File IO: name 1000ms 256MiB

姓名团

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

在某一个平行世界中,每个人的姓名有三个字,且三个字的读音都必须不相同,否则姓名不合法。例如 ji-wei-jiu 是一个合法的名字;而 yao-wang 则不是,因为只有两个字;li-yi-yi 也不是,因为有两个读音相同的字。

如果有三个人的名字具有题目中的特性,则我们称这三个人为一个“姓名团”。特性如下:你可以选出三个不同的字,使得每个字都被这三个人中的至少两人的名字包含。

例如第一个人叫 wu-si-cheng,第二个人叫 wu-jia-han,第三个人叫 chen-si-han。那么当你选择 wu 的时候,前两个人包含这个字,选择 si 的时候,第一和第三个人包含这个字,选择 han 的时候,第二和第三个人包含这个字。(只需要包含这个字即可,无需关心这个字在名字中的位置)

即对于 wu-si-han 这三个字,每一个字都被至少两人包含。

注意: 每个人只能处于一个姓名团中,在任意范围内,不同人之间的名字可以相同

现在你有一个包含 nn 个字的字库,每个字可以用 aia_i 次,我们假设所有字的使用次数之和为 sumsum(保证 sum 是 3 的倍数),那么你就可以造出 sum/3sum/3 个人名出来。请问你最多能造出多少个姓名团。

如果不能造出 sum/3sum/3 个合法人名,输出 -1。

输入格式

第一行输入一个整数 nn,表示字库中共有 nn 个字。接下来一行包含 nn 个正整数 aia_i,分别表示每个字能够使用的次数,保证所有 aia_i 之和是 3 的倍数。

输出格式

输出一行一个整数表示结果。

3
10 1 1
-1
3
4 4 4
1

大样例

T4.in
T4.out

样例 2 说明:总共可以造出 4 个名字一样的人,但是由于一个姓名团需要包含 3 个人,所以只能有一个姓名团。

测试点信息

测试点 数据范围 特殊性质
1-3 1n,ai10001 \leq n, a_i \leq 1000
4-6 答案要么为-1要么为100,且所有 aia_i 之和为 900,保证其它数据没有此性质,即你可以通过判断所有 aia_i 之和是否为 900 来识别本组数据
7-10 1ai1013,1n1051 \leq a_i \leq 10^{13},1\leq n \leq 10^5

0921

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2025-9-21 18:30
End at
2025-9-21 21:00
Duration
2.5 hour(s)
Host
Partic.
64