组队参加奥林匹克


Submit solution

Points: 10
Time limit: 1.0s
Memory limit: 4M

Author:
Problem type
Allowed languages
C++

组队参加奥林匹克

贝尔兰首都第0号学校有 \(n\) 名学生。所有学生都很有天赋:
一些学生擅长编程,
一些学生擅长数学,
一些学生擅长体育。

因此,对于每个学生,我们知道一个值 \(t_i\): \(t_i\)=1,表示第 \(i\) 名学生擅长编程; \(t_i\)=2,表示第 \(i\) 名学生擅长数学; \(t_i\)=3,表示第 \(i\) 名学生擅长体育;

每个学生只擅长其中一个科目。学校老师决定组建参加 "团队科学全能奥林匹克" 的队伍。 每个团队必须由三个擅长不同科目的学生组成,也就是说:每个团队需要有一名数学家、一名程序员和一名体育健将。当然,每个学生只能参加一个团队。

你的任务是:

计算学校最多可以组成多少个这样的团队。指定这些团队的具体成员。

输入

第一行包含一个整数 \(n\) (\(1 \le n \le 5000\)) 学校的学生数量。 第二行包含 \(n\) 个整数 \(t_1, t_2, ..., t_n\) (\(1 \le ti \le 3\)),其中 \(t_i\) 表示第 \(i\) 名学生擅长的科目。

输出

输出整数 \(w\) 学校能够组成的最大团队数量。

输入 1
7
1 3 1 3 2 1 2
输出 1
2
输入 2
4
2 1 1 2
输出 2
0
说明

在第一个示例中,有以下学生的分组:
第1、3、6号学生擅长编程;
第5、7号学生擅长数学;
第2、4号学生擅长体育。 学校最多可以组成 2 个团队,例如 [3,5,2] 和 [6,7,4]。
在第二个示例中,没有学生擅长体育,因此无法组成任何团队。输出 0。


Comments

There are no comments at the moment.