A82874.团队全能赛
入门
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
题目背景
学校要参加“团队全能赛”。每支队伍需要 3 名同学,分别擅长 编程、数学、体育 各一名。每个同学 只擅长其中一项,而且 每个同学最多只能参加一支队伍。
题目描述
共有 n 名同学,第 i 名同学的特长用 ti 表示:
- ti=1 表示擅长 编程;
- ti=2 表示擅长 数学;
- ti=3 表示擅长 体育。
请计算:最多能组成多少支由“编程 + 数学 + 体育”各一名的队伍,并给出一种可行的组队方案(写出每队 3 个同学的编号)。同学编号为 1∼n,按输入顺序编号。
输入格式
- 第一行:一个整数 n。
- 第二行:n 个整数 t1,t2,…,tn(每个都在 {1,2,3} 中)。
输出格式
- 第一行:整数 w,表示最多能组的队伍数。
- 若 w>0,接着输出 w 行,每行 3 个整数,表示一支队伍中三名同学的编号(顺序任意)。
- 若无法组队(w=0),只输出一行
0。
输入输出样例
输入#1
7 1 3 1 3 2 1 2
输出#1
2 3 5 2 6 7 4
输入#2
4 2 1 1 2
输出#2
0
说明/提示
数据范围
- 1≤n≤5000
- ti∈{1,2,3}
- 每名同学最多加入一支队伍
样例一解释
把三类同学的编号收集起来:
- 编程(1):[1,3,6]
- 数学(2):[5,7]
- 体育(3):[2,4]
人数分别为 3,2,2,所以最多可组 2 支。
例如可以输出两队:(3,5,2) 和 (6,7,4)(答案不唯一)。
样例二解释
没有人擅长体育(3),无法组成“编程+数学+体育”的完整一队。