P0854

[Poi2012]Squarks

[Poi2012]Squarks

给定 nn 个互不相同的正整数 {X1,X2,…,Xn}\{X_1,X_2,\ldots,X_n\}。任取两个不同的整数 XiX_i 和 XjX_j,可以得到它们的和 Xi+XjX_i+X_j。

现在给出所有 n(n−1)2\frac{n(n-1)}{2} 个两两之和,请还原所有可能的整数集合 {X1,X2,…,Xn}\{X_1,X_2,\ldots,X_n\}。

输入格式

第一行包含一个正整数 nn。

第二行包含 n(n−1)2\frac{n(n-1)}{2} 个正整数,表示所有满足 i≠ji\ne j 的 Xi+XjX_i+X_j。

输出格式

第一行输出一个正整数 kk,表示可能的方案数。测试数据保证至少存在一种方案。

接下来 kk 行,每行输出一组方案,其中包含按递增顺序排列的 nn 个正整数。

所有方案按照集合中最小值从大到小的顺序输出。

样例输入

4
3 5 4 7 6 5

样例输出

1
1 2 3 4

数据范围

  • 3≤n≤3003\le n\le 300;
  • 每个给出的两数之和均为不超过 10810^8 的正整数。

来源与许可

本题为 POI 2012 试题「Squarks」,题面与测试数据整理自 BZOJ。

样例 1

输入

4
3 5 4 7 6 5

输出

1
1 2 3 4