Universal Cup Judging System

Universal Cup

時間限制: 1 s 記憶體限制: 512 MB 總分: 100 可 Hack ✓
统计

Yuki는 국제 볼록다각형 선수권 대회(ICPC)의 수석 심판입니다. 그는 대회를 위해 기하학 문제를 출제했습니다. 하지만 기하학 경험이 부족했던 탓에 올바른 볼록다각형 데이터를 생성하는 데 실패했습니다.

자신의 기하학 능력을 증명하기 위해, Yuki는 다시 막대기를 가지고 놀기 시작했습니다. 그에게는 $n$개의 막대기가 있으며, $i$번째 막대기의 길이는 $a_i$입니다. 그는 이 중에서 최소 $3$개의 막대기를 골라 그 막대기들로 비퇴화(non-degenerate) 볼록다각형$^*$을 만들려고 합니다.

하지만 Yuki는 기하학에 대해 잘 모르기 때문에 막대기를 어떻게 골라야 할지 모릅니다. Yuki의 좋은 친구로서, 당신은 다음 조건을 만족하는 막대기들의 부분집합을 찾는 것을 도와주어야 합니다:

  • 부분집합은 최소 $3$개의 막대기를 포함하며, 막대기의 개수가 가능한 한 많아야 합니다;

  • 이 부분집합에서 최소 $3$개의 막대기로 이루어진 어떤 부분집합을 고르더라도, 그 막대기들은 비퇴화 볼록다각형을 이룰 수 있어야 합니다.

또는 그러한 부분집합이 존재하지 않는다고 보고하세요.

$^*$: 비퇴화 볼록다각형이란 모든 변의 길이가 0보다 크고, 어느 세 꼭짓점도 한 직선 위에 있지 않으며, 모든 내각이 $180^\circ$보다 엄격하게 작은 다각형을 말합니다.

입력

이 문제는 여러 개의 테스트 케이스를 포함합니다.

첫 번째 줄에는 테스트 케이스의 수를 나타내는 양의 정수 $t$ ($1 \le t \le 10^5$)가 주어집니다.

각 테스트 케이스에 대해:

  • 첫 번째 줄에는 양의 정수 $n$ ($3 \le n \le 5 \cdot 10^5$)이 주어집니다.

  • 두 번째 줄에는 $n$개의 양의 정수 $a_1,\ldots,a_n$ ($1 \le a_i \le 10^9$)이 주어집니다.

모든 테스트 케이스에 대해 $n$의 합은 $5 \cdot 10^5$을 초과하지 않음이 보장됩니다.

출력

각 테스트 케이스마다 한 줄을 출력합니다:

  • 그러한 부분집합이 존재하지 않는다면 정수 $0$ 하나를 출력합니다.

  • 그러한 부분집합이 존재한다면, 먼저 찾은 부분집합의 크기를 나타내는 정수 $k$를 출력하고, 이어서 부분집합에 속한 $k$개의 막대기의 길이를 나타내는 $k$개의 정수 $b_1,\ldots,b_k$를 출력합니다.

예제

예제 입력 1

3
4
6 9 2 6
3
4 4 9
6
3 1 4 6 5 9

예제 출력 1

3 6 2 6
0
4 3 4 5 6

노트

첫 번째 테스트 케이스의 경우:

  • $\{6,2,6\}$은 유효한 부분집합입니다. $2+6>6$이므로 이 $3$개의 막대기는 비퇴화 삼각형을 이룰 수 있으며, 더 큰 유효한 부분집합이 존재하지 않음을 쉽게 증명할 수 있습니다.

  • $\{6,6,9\}$ 또한 유효한 부분집합입니다.

두 번째 테스트 케이스의 경우:

  • 유효한 부분집합이 존재하지 않음을 증명할 수 있습니다.

세 번째 테스트 케이스의 경우:

  • $\{3,4,5,6\}$은 유효한 부분집합입니다. 이 경우 Yuki가 막대기를 고르는 방법은 $\{3,4,5\}$, $\{3,4,6\}$, $\{3,5,6\}$, $\{4,5,6\}$, $\{3,4,5,6\}$의 $5$가지가 있으며, 각 방법 모두 비퇴화 볼록다각형을 이룰 수 있습니다. 더 큰 유효한 부분집합이 존재하지 않음을 쉽게 증명할 수 있습니다.

  • $\{3,4,5,6,9\}$는 길이가 $3,4,9$인 막대기들로 비퇴화 삼각형을 만들 수 없기 때문에 유효한 부분집합이 아닙니다.

  • $\{3,5,6\}$은 더 큰 유효한 부분집합이 존재하기 때문에 유효한 부분집합이 아닙니다.

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.