QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#102. Bootfall

Statistics

Tima e i suoi $N$ amici adorano giocare a Bootfall. Bootfall è un gioco sportivo per $N + 1$ giocatori. Ogni giocatore ha una forza, che può essere rappresentata come un numero intero positivo. La partita è composta da $N + 1$ turni; in ogni turno uno dei giocatori riprenderà il turno in video e i restanti $N$ giocatori si divideranno in due squadre, in modo tale che ogni giocatore venga assegnato a una delle squadre ed entrambe le squadre siano non vuote. La forza di una squadra è la somma delle forze di tutti i giocatori della squadra. Inoltre, ogni giocatore farà da cameraman in esattamente un turno.

Un turno è detto pareggio se esiste una divisione in due squadre di uguale forza, e l'intera partita è detta amichevole se tutti i turni sono pareggio. Ciascuno degli $N$ amici ha già comunicato a Tima la propria forza, e ora Tima può assegnare a se stesso qualsiasi valore valido di forza.

Tima conosce le forze di tutti gli $N$ giocatori e sceglierà un valore tale che la partita possa essere amichevole. Aiutalo a trovare tutte le forze possibili.

Dati di input

La prima riga di input contiene un numero intero positivo $N$ ($1 \le N \le 500$) — il numero di amici di Tima. La seconda riga di input contiene $N$ numeri interi positivi $a_1, a_2, \ldots, a_N$ ($1 \le a_i \le 500$; $1 \le i \le N$) separati da spazi, dove $a_i$ è la forza della $i$-esima persona.

Dati di output

La prima riga di output deve contenere un numero intero $K$ — il numero di forze possibili per Tima. Se non esiste alcuna forza possibile per Tima, stampare soltanto “0” (senza virgolette); altrimenti, nella seconda riga di output stampare $K$ numeri interi positivi separati da spazi — tutti i possibili valori di forza per Tima in ordine crescente.

Subtask

Questo problema è composto da sei subtask:

  1. $1 \le N \le 12$, $1 \le a_i \le 200$, per ogni $1 \le i \le N$. Punteggio: 6 punti.
  2. $1 \le N \le 30$, $1 \le a_i \le 20$, per ogni $1 \le i \le N$. Punteggio: 7 punti.
  3. $1 \le N \le 100$, $1 \le a_i \le 100$, per ogni $1 \le i \le N$. Punteggio: 15 punti.
  4. $1 \le N \le 270$, $1 \le a_i \le 270$, per ogni $1 \le i \le N$. Punteggio: 16 punti.
  5. $1 \le N \le 350$, $1 \le a_i \le 350$, per ogni $1 \le i \le N$. Punteggio: 21 punti.
  6. $1 \le N \le 500$, $1 \le a_i \le 500$, per ogni $1 \le i \le N$. Punteggio: 35 punti.

Ogni subtask verrà valutato solo se la soluzione supera con successo tutti i subtask precedenti.

Esempi

Dati di input 1

4
1 3 1 5

Dati di output 1

1
3

Dati di input 2

6
3 5 7 11 9 13

Dati di output 2

4
1 3 17 19

Dati di input 3

3
2 2 2

Dati di output 3

0

Dati di input 4

4
200 200 200 200

Dati di output 4

2
200 600

Note

Note sul primo caso di esempio.

Mostriamo che se Tima sceglie la forza $3$, allora la partita può essere amichevole.

  • Quando Tima riprende la partita, per rendere il turno un pareggio gli altri giocatori possono essere divisi come segue: $(1, 3, 1)$ nella prima squadra e $(5)$ nella seconda.
  • Quando l'amico 1 riprende la partita, gli altri possono essere divisi come segue: $(1, 5)$ nella prima squadra, $(3, 3)$ nella seconda.
  • Quando l'amico 2 riprende la partita, gli altri possono essere divisi come segue: $(1, 1, 3)$ nella prima squadra, $(5)$ nella seconda.
  • Quando l'amico 3 riprende la partita, gli altri possono essere divisi come segue: $(3, 3)$ nella prima squadra, $(1, 5)$ nella seconda.
  • Quando l'amico 4 riprende la partita, gli altri possono essere divisi come segue: $(1, 3)$ nella prima squadra, $(1, 3)$ nella seconda.

Se Tima sceglie una forza diversa da $3$, allora la partita non può essere amichevole.

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.