luogu#P4960. 血小板与凝血因子

血小板与凝血因子

题目背景

为了尽快修复伤口,血小板们正在搬运凝血因子。它们(没毛病)正在讨论怎么分配,因为它们太可爱了,所以就让你来解决这个问题。

题目描述

血小板们有两种不同的容器,第一种容器每个容器中只能装同一种凝血因子,第二种容器每个容器中每种凝血因子最多出现一次。为了方便,血小板们想用同一种容器装下所有的凝血因子。

换句话说,把 nn 个正整数 a1a_1 ~ ana_n 分成一些不相交的集合 S1S_1 ~ SmS_m,满足以下两个条件之一

  1. ai, ajSk, k[1, m]\forall a_i,\ a_j\in S_k,\ k\in [1,\ m]ai=aja_i=a_j
  2. ai, ajSk, k[1, m], ij\forall a_i,\ a_j\in S_k,\ k\in [1,\ m],\ i\neq jaiaja_i\neq a_j

因为血小板的数量比较少,所以你要把所有的凝血因子装到尽量少的容器里。它们想知道,如何划分能使容器的总数最小。

输入格式

第一行,一个正整数 nn,表示凝血因子的个数。

第二行,nn 个正整数 aia_i,分别表示凝血因子的种类。

输出格式

第一行,两个正整数,第一个正整数代表容器数的最小值 mm,第二个正整数代表所用容器的种类(1122)。

接下来的 mm 行,每行第一个正整数 cic_i 代表这个容器装的凝血因子个数,后面的 cic_i 个数代表这个容器中装的每个凝血因子的种类。

输出任意一组合法的最优解即可,输出顺序不限。

7
1 2 3 5 4 4 4
3 2
1 4
5 3 1 2 4 5
1 4
3
20181110 20181111 20181111
2 1
1 20181110
2 20181111 20181111
3
20181110 20181111 20181111
2 2
2 20181110 20181111
1 20181111
5
3 2 3 2 3
2 1
3 3 3 3
2 2 2

提示

1n1000,  1ai1091\le n\le 1000,\ \ 1\le a_i\le 10^9

样例解释

样例一:

选用第二种容器,分别放入 {4}\{4\}{3,1,2,4,5}\{3,1,2,4,5\}{4}\{4\},这是一组可行的最优解,更改三个容器的顺序、容器 2255 个凝血因子的顺序可以得到另外的最优解。

样例二/三:

这两组样例输入相同,既可以选用第一种容器,也可以选用第二种容器。

两组样例的输出分别为一组可行的最优解,改变顺序可以得到另外的几组最优解。

样例四:

选用第一种容器,分别放入 {3,3,3}\{3,3,3\}{2,2}\{2,2\},这是一组可行的最优解,更改两个容器的顺序可以得到另一组最优解。