Universal Cup Judging System

Universal Cup

Süre Sınırı: 3 s Bellek Sınırı: 2048 MB Toplam puan: 100 Zorluk: [göster] Hack'lenebilir ✓
İstatistikler

아시다시피 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는 제가 그를 위해 선발한 멤버들을 신뢰하지 않습니다(슬픈 일이죠). 디렉터로서 그는 가능한 한 많은 멤버를 내보내고 싶어 합니다. 그러나 그는 공정하기를 원하기 때문에, 멤버를 내보낼 때마다 그 멤버는 자신이 속한 그룹에서 실력이 가장 작은 멤버여야 합니다. 엄밀하게 말하면, 한 번의 연산에서 Little Cyan Fish는 비어 있지 않은 그룹을 하나 선택하고 그 그룹에서 실력이 가장 작은 멤버 중 한 명을 해고합니다. 실력이 가장 작은 멤버가 여러 명이라면 그중 아무나 선택할 수 있습니다.

아시다시피, 멤버들은 누군가 해고되었다는 소식을 들으면 매우 슬퍼할 것이고, 아니면... 심지어 무기를 들고 봉기할지도 모릅니다! Little Cyan Fish는 이 과정에서 어떤 출제 그룹도 지배적인 세력이 되는 것을 정말로 원하지 않습니다. 따라서 각 연산이 끝난 후, 모든 그룹의 영향력은 다른 모든 그룹의 영향력의 합 이하여야 합니다. 즉, 모든 그룹 $i$에 대해

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

를 만족해야 하며, 여기서 $s_i$는 그룹 $i$의 현재 영향력을 나타냅니다. 초기 그룹들은 이 조건을 반드시 만족하지는 않습니다.

해고할 수 있는 멤버의 최대 인원수를 구하고, 최적의 연산 수열을 구성하세요.

입력

여러 개의 테스트 케이스가 주어집니다. 첫 번째 줄에는 테스트 케이스의 개수를 나타내는 단일 정수 $T$ ($1 \le T$)가 주어집니다.

각 테스트 케이스에 대해, 첫 번째 줄에는 그룹의 개수를 나타내는 단일 정수 $n$ ($1 \le n \le 5 \times 10^5$)이 주어집니다. 다음 $n$개의 줄에는 각각 하나의 그룹에 대한 정보가 주어집니다. 이 중 $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$을 초과하지 않음이 보장됩니다.

출력

각 테스트 케이스마다 두 줄을 출력하세요. 첫 번째 줄에는 해고할 수 있는 멤버의 최대 인원수를 나타내는 단일 정수 $m$을 출력합니다. 두 번째 줄에는 $m$개의 정수 $b_1, b_2, \ldots, b_m$ ($1 \le b_i \le n$)을 출력하며, 여기서 $b_i$는 $i$번째 연산에서 선택한 그룹의 번호입니다. 만약 $m = 0$이라면 두 번째 줄은 빈 줄이어야 합니다.

최적의 연산 수열이 여러 개라면 그중 아무것이나 출력해도 됩니다.

예제

입력 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.