G - Dream Team Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 600

問題文

N 人の競技プログラマがいます。
i 人目の競技プログラマは、所属大学が A_i、得意分野が B_i、強さが C_i です。

N 人のうちの何人かによって構成されるチームであって、次の条件をともに満たすものをドリームチームと呼びます。

  • チームに属するどの 2 人の所属大学も異なる
  • チームに属するどの 2 人の得意分野も異なる

構成可能なドリームチームの人数の最大値を k とします。各 i=1,2,\ldots,k について、次の問題を解いてください。

問題:ちょうど i 人で構成されるドリームチームについて、チームに所属する人の強さの合計の最大値を求めてください。

制約

  • 1 \leq N \leq 3\times 10^4
  • 1 \leq A_i,B_i \leq 150
  • 1 \leq C_i \leq 10^9
  • 入力に含まれる値は全て整数である

入力

入力は以下の形式で標準入力から与えられる。

N A_1 B_1 C_1 A_2 B_2 C_2 \vdots A_N B_N C_N 

出力

構成可能なドリームチームの人数の最大値を k とする。
1行目には k を出力し、その後、k 行にわたって、i=1,2,\ldots,k のときの問題に対する答えを順に出力せよ。


入力例 1

3 1 1 100 1 20 10 2 1 1 

出力例 1

2 100 11 
  • ちょうど 1 人で構成されるドリームチームは、1 人目の競技プログラマからなるとき強さの合計が 100 で最大になります。
  • ちょうど 2 人で構成されるドリームチームは、2,3 人目の競技プログラマからなるとき強さの合計が 11 で最大になります。
  • ちょうど 3 人で構成されるドリームチームを作ることはできません。

入力例 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 

Score : 600 points

Problem Statement

There are N competitive programmers.
The i-th competitive programmer belongs to University A_i, is good at Subject B_i, and has a power of C_i.

Consider a team consisting of some of the N people. Let us call such a team a dream team if both of the following conditions are satisfied:

  • Any two people belonging to the team belong to different universities.
  • Any two people belonging to the team are good at different subjects.

Let k be the maximum possible number of members of a dream team. For each i=1,2,\ldots,k, solve the following question.

Question: find the maximum sum of power of people belonging to a dream team consisting of i people.

Constraints

  • 1 \leq N \leq 3\times 10^4
  • 1 \leq A_i,B_i \leq 150
  • 1 \leq C_i \leq 10^9
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

N A_1 B_1 C_1 A_2 B_2 C_2 \vdots A_N B_N C_N 

Output

Let k be the maximum possible number of members of a dream team.
Print k in the first line. Then, print k more lines, each containing the answer to the question for i=1,2,\ldots,k, in this order.


Sample Input 1

3 1 1 100 1 20 10 2 1 1 

Sample Output 1

2 100 11 
  • The sum of power of members of a dream team consisting of exactly 1 person is 100, when the team consists of the 1-st competitive programmer.
  • The sum of power of members of a dream team consisting of exactly 2 people is 11, when the team consists of the 2-nd and the 3-rd competitive programmers.
  • It is impossible to form a dream team consisting of exactly 3 people.

Sample Input 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 

Sample Output 2

4 961524227 1537802822 2032700249 2353208324