A82874.团队全能赛

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

题目背景

学校要参加“团队全能赛”。每支队伍需要 3 名同学,分别擅长 编程数学体育 各一名。每个同学 只擅长其中一项,而且 每个同学最多只能参加一支队伍

题目描述

共有 nn 名同学,第 ii 名同学的特长用 tit_i 表示:

  • ti=1t_i=1 表示擅长 编程
  • ti=2t_i=2 表示擅长 数学
  • ti=3t_i=3 表示擅长 体育

请计算:最多能组成多少支由“编程 + 数学 + 体育”各一名的队伍,并给出一种可行的组队方案(写出每队 3 个同学的编号)。同学编号为 1n1\sim n,按输入顺序编号。

输入格式

  • 第一行:一个整数 nn
  • 第二行:nn 个整数 t1,t2,,tnt_1,t_2,\ldots,t_n(每个都在 {1,2,3}\{1,2,3\} 中)。

输出格式

  • 第一行:整数 ww,表示最多能组的队伍数。
  • w>0w>0,接着输出 ww 行,每行 3 个整数,表示一支队伍中三名同学的编号(顺序任意)。
  • 若无法组队(w=0w=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

说明/提示

数据范围

  • 1n50001 \le n \le 5000
  • ti{1,2,3}t_i \in \{1,2,3\}
  • 每名同学最多加入一支队伍

样例一解释

把三类同学的编号收集起来:

  • 编程(11):[1,3,6][1,3,6]
  • 数学(22):[5,7][5,7]
  • 体育(33):[2,4][2,4]

人数分别为 3,2,23,2,2,所以最多可组 22 支。
例如可以输出两队:(3,5,2)(3,5,2)(6,7,4)(6,7,4)(答案不唯一)。

样例二解释

没有人擅长体育(33),无法组成“编程+数学+体育”的完整一队。

首页