Universal Cup Judging System

Universal Cup

実行時間制限: 3 s メモリ制限: 2048 MB 満点: 100 難易度: [表示] ハック可能 ✓
統計

ご存知かもしれませんが、Little Cyan Fish は毎年たくさんのコンテストを作っています。Universal Cup のコンテスト、ICPC のコンテスト、情報オリンピックなどなど……最近 Little Cyan Fish がとても疲れていると聞き、私は彼を手伝いたいと思いました。

具体的には、私は $1$ から $n$ までの番号が付けられた $n$ 個の作問グループを作りました。$i$ 番目のグループには最初 $k_i$ 人のメンバーがおり、彼らの実力は整数 $a_{i,1}, a_{i,2}, \ldots, a_{i,k_i}$ です。あるグループの影響力とは、そのグループのメンバーの実力の総和です。空のグループの影響力は $0$ です。

しかし、Little Cyan Fish は私が彼のために選んだメンバーたちを信用していません(悲しいことです)。ディレクターとして、彼はできるだけ多くのメンバーを追放したいと考えています。ただし、彼は公平でありたいと思っており、メンバーを追放する際には、そのメンバーが所属グループ内で最小の実力を持っていなければなりません。形式的には、1 回の操作において、Little Cyan Fish は空でないグループを 1 つ選び、そのグループ内で実力が最小のメンバーを 1 人解雇します。最小の実力を持つメンバーが複数いる場合は、そのうちの誰を選んでもかまいません。

ご存知のとおり、誰かが解雇されたと聞けばメンバーたちはとても悲しむでしょうし、あるいは……武器を取って蜂起するかもしれません!Little Cyan Fish はその過程でどの作問グループも支配的になることを本当に望んでいません。したがって、各操作の後、すべてのグループの影響力は、他のすべてのグループの影響力の総和以下でなければなりません。すなわち、すべてのグループ $i$ について、

$$s_i \le \sum_{j \ne i} s_j,$$

が成り立つ必要があります。ここで $s_i$ はグループ $i$ の現在の影響力を表します。初期状態のグループはこの条件を満たしているとは限りません。

解雇できるメンバーの最大人数を求め、最適な操作列を 1 つ構築してください。

入力

複数のテストケースが与えられます。最初の行には、テストケースの個数を表す単一の整数 $T$ ($1 \le T$) が与えられます。

各テストケースについて、最初の行にはグループの個数を表す単一の整数 $n$ ($1 \le n \le 5 \times 10^5$) が与えられます。続く $n$ 行はそれぞれ 1 つのグループを表します。これらのうち $i$ 番目の行は整数 $k_i$ ($1 \le k_i \le 5 \times 10^5$) から始まり、続いて $i$ 番目のグループのメンバーの実力を表す $k_i$ 個の整数 $a_{i,1}, a_{i,2}, \ldots, a_{i,k_i}$ ($1 \le a_{i,j} \le 10^9$) が与えられます。

すべてのテストケースにわたる $n$ の総和は $5 \times 10^5$ を超えず、すべてのテストケースにわたる $k_i$ の総和は $5 \times 10^5$ を超えないことが保証されます。

出力

各テストケースについて、2 行出力してください。1 行目には、解雇できるメンバーの最大人数を表す単一の整数 $m$ を出力してください。2 行目には、$m$ 個の整数 $b_1, b_2, \ldots, b_m$ ($1 \le b_i \le n$) を出力してください。ここで $b_i$ は $i$ 回目の操作で選ばれたグループの番号です。$m = 0$ の場合、2 行目は空行にしてください。

最適な操作列が複数存在する場合は、そのうちのどれを出力してもかまいません。

入出力例

入力 1

3
4
1 1
2 2 4
2 3 4
1 8
1
1 7
2
2 1 1
2 1 1

出力 1

4
3 2 4 1
1
1
0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.