组队参加奥林匹克
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