#abc247g. [abc247_g]Dream Team

[abc247_g]Dream Team

题目描述

NN 个竞技者。 第 ii 个竞技者属于大学 AiA_i,擅长科目 BiB_i,以及具有力量 CiC_i

考虑一个由 NN 个人组成的团队。 如果满足以下两个条件,则称这样的团队为梦之队

  • 团队中的任意两个人属于不同的大学。
  • 团队中的任意两个人擅长不同的科目。

kk 是一个梦之队最多能有的成员数。对于每个 i=1,2,ldots,ki=1,2,\\ldots,k,求解以下问题。

问题:找到由 ii 个人组成的梦之队中成员力量之和的最大值。

约束条件

  • 1N3times1041 \leq N \leq 3\\times 10^4
  • 1Ai,Bi1501 \leq A_i,B_i \leq 150
  • 1Ci1091 \leq C_i \leq 10^9
  • 输入中的所有值均为整数。

输入

从标准输入获得输入数据,格式如下:

NN A1A_1 B1B_1 C1C_1 A2A_2 B2B_2 C2C_2 vdots\\vdots ANA_N BNB_N CNC_N

输出

kk 是一个梦之队最多能有的成员数。
第一行打印 kk。然后,接下来的 kk 行,按顺序依次打印每个 i=1,2,ldots,ki=1,2,\\ldots,k 对应的问题的答案。


示例输入 1

3
1 1 100
1 20 10
2 1 1

示例输出 1

2
100
11
  • 恰好包含 11 个人的梦之队成员力量之和为 100100,当团队只包含第 11 个竞技者时。
  • 恰好包含 22 个人的梦之队成员力量之和为 1111,当团队包含第 22 和第 33 个竞技者时。
  • 不可能组成恰好包含 33 个人的梦之队。

示例输入 2

10
1 4 142135623
2 6 457513110
3 1 622776601
5 1 961524227
2 2 360679774
2 4 494897427
3 7 416573867
5 2 915026221
1 7 320508075
5 3 851648071

示例输出 2

4
961524227
1537802822
2032700249
2353208324