QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 256 MB Puntuación total: 100 Hackeable ✓

#102. Bootfall

Estadísticas

Tima와 그의 친구 $N$명은 Bootfall을 플레이하는 것을 좋아합니다. Bootfall은 $N + 1$명의 플레이어를 위한 스포츠 게임입니다. 각 플레이어는 양의 정수로 나타낼 수 있는 힘을 가지고 있습니다. 게임은 $N + 1$개의 라운드로 구성되며, 각 라운드마다 플레이어 중 한 명이 그 라운드를 비디오로 녹화하고 나머지 $N$명의 플레이어는 각 플레이어가 두 팀 중 한 팀에 배정되고 두 팀 모두 비어 있지 않도록 두 팀으로 나뉩니다. 팀의 힘은 그 팀에 속한 모든 플레이어의 힘의 합입니다. 또한 각 플레이어는 정확히 한 라운드에서만 녹화자가 됩니다.

힘이 같은 두 팀으로 나누는 방법이 존재하면 그 라운드를 무승부라고 부르며, 모든 라운드가 무승부이면 전체 게임을 친선 게임이라고 부릅니다. $N$명의 친구들은 각각 자신의 힘을 이미 Tima에게 알려 주었으며, 이제 Tima는 자신에게 유효한 임의의 힘 값을 정할 수 있습니다.

Tima는 $N$명의 모든 플레이어의 힘을 알고 있으며, 게임이 친선 게임이 될 수 있도록 어떤 값을 선택하려고 합니다. 그가 가능한 모든 힘을 찾을 수 있도록 도와주세요.

입력

입력의 첫 번째 줄에는 양의 정수 $N$ ($1 \le N \le 500$) — Tima의 친구 수가 주어집니다. 입력의 두 번째 줄에는 공백으로 구분된 $N$개의 양의 정수 $a_1, a_2, \ldots, a_N$ ($1 \le a_i \le 500$; $1 \le i \le N$)이 주어지며, $a_i$는 $i$번째 사람의 힘입니다.

출력

출력의 첫 번째 줄에는 정수 $K$ — Tima에게 가능한 힘의 개수를 출력해야 합니다. Tima에게 가능한 힘이 없다면 “0”(따옴표 제외)만 출력하고, 그렇지 않다면 출력의 두 번째 줄에 공백으로 구분된 $K$개의 양의 정수 — Tima에게 가능한 모든 힘의 값을 오름차순으로 출력합니다.

서브태스크

이 문제는 여섯 개의 서브태스크로 구성되어 있습니다:

  1. 모든 $1 \le i \le N$에 대해 $1 \le N \le 12$, $1 \le a_i \le 200$. 점수 6점.
  2. 모든 $1 \le i \le N$에 대해 $1 \le N \le 30$, $1 \le a_i \le 20$. 점수 7점.
  3. 모든 $1 \le i \le N$에 대해 $1 \le N \le 100$, $1 \le a_i \le 100$. 점수 15점.
  4. 모든 $1 \le i \le N$에 대해 $1 \le N \le 270$, $1 \le a_i \le 270$. 점수 16점.
  5. 모든 $1 \le i \le N$에 대해 $1 \le N \le 350$, $1 \le a_i \le 350$. 점수 21점.
  6. 모든 $1 \le i \le N$에 대해 $1 \le N \le 500$, $1 \le a_i \le 500$. 점수 35점.

각 서브태스크는 풀이가 이전의 모든 서브태스크를 성공적으로 통과한 경우에만 점수를 받습니다.

예제

입력 1

4
1 3 1 5

출력 1

1
3

입력 2

6
3 5 7 11 9 13

출력 2

4
1 3 17 19

입력 3

3
2 2 2

출력 3

0

입력 4

4
200 200 200 200

출력 4

2
200 600

참고

첫 번째 예제 테스트에 대한 설명.

Tima가 힘 $3$을 선택하면 게임이 친선 게임이 될 수 있음을 보이자.

  • Tima가 게임을 녹화할 때, 라운드를 무승부로 만들기 위해 다른 플레이어들을 다음과 같이 나눌 수 있습니다: 첫 번째 팀에 $(1, 3, 1)$, 두 번째 팀에 $(5)$.
  • 친구 1이 게임을 녹화할 때, 다른 사람들을 다음과 같이 나눌 수 있습니다: 첫 번째 팀에 $(1, 5)$, 두 번째 팀에 $(3, 3)$.
  • 친구 2가 게임을 녹화할 때, 다른 사람들을 다음과 같이 나눌 수 있습니다: 첫 번째 팀에 $(1, 1, 3)$, 두 번째 팀에 $(5)$.
  • 친구 3이 게임을 녹화할 때, 다른 사람들을 다음과 같이 나눌 수 있습니다: 첫 번째 팀에 $(3, 3)$, 두 번째 팀에 $(1, 5)$.
  • 친구 4가 게임을 녹화할 때, 다른 사람들을 다음과 같이 나눌 수 있습니다: 첫 번째 팀에 $(1, 3)$, 두 번째 팀에 $(1, 3)$.

만약 Tima가 $3$이 아닌 힘을 선택하면, 게임은 친선 게임이 될 수 없습니다.

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.