QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#958. Lockout проти tourist

Statistics

Ви граєте матч у форматі lockout. Правила прості: це змагання один на один, є $n$ задач із різною кількістю очок за кожну; очки отримує лише той учасник, чий розв'язок задачі прийнято першим, — навіть якщо інший запізниться на 1 секунду, він не отримає жодного очка. Для простоти ми не вводитимемо обмеження часу чи дострокових перемог: матч триває, доки кожну задачу не розв'яже принаймні один з учасників.

Ви доволі сильний учасник, але... ваш суперник — tourist. Так, це катастрофа. Перемогти буде важко, але ви сподіваєтеся урвати трохи очок, щоб урятувати репутацію. Якщо ви з tourist працюватимете над тією самою задачею, він, звісно, вас випередить. Але якщо ви обрали іншу задачу — це ваш шанс! Ви зможете розв'язати її раніше за tourist! Щоправда, тоді він увійде в режим берсерка й миттєво розв'яже всі задачі, що залишилися. Одна задача краща, ніж нічого, чи не так?

Трохи формалізуємо процес. Щоразу ви з tourist маєте набір нерозв'язаних задач для вибору. Якщо нерозв'язаних задач не залишилося, гра закінчується, і ви отримуєте 0 очок. Інакше ви й tourist повинні обрати задачу для роботи, не знаючи, яку задачу обрала інша людина. Якщо ви обрали ту саму задачу, tourist розв'язує її раніше за вас, і ми повертаємося до того самого початкового стану з меншою кількістю задач. Інакше ви отримуєте очки за обрану вами задачу, але гра негайно закінчується, оскільки tourist миттєво розв'язує всі задачі, що залишилися.

Ви хочете максимізувати кількість отриманих очок, а tourist хоче її мінімізувати. Яким буде математичне сподівання результату гри, якщо і ви, і tourist діятимете оптимально?

Вхідні дані

Перший рядок містить одне ціле число $n$ ($1 \le n \le 22$) — кількість задач.

Другий рядок містить $n$ цілих чисел $a_i$ ($1 \le a_i \le 10^9$) — кількість очок за кожну задачу.

Вихідні дані

Виведіть одне число — математичне сподівання вашої кількості очок.

Ваша відповідь вважається правильною, якщо її абсолютна або відносна похибка не перевищує $10^{-6}$.

Формально, нехай ваша відповідь — $a$, а відповідь журі — $b$. Ваша відповідь приймається тоді й лише тоді, коли $\frac{|a-b|}{\max(1,|b|)} \le 10^{-6}$.

Приклади

Вхідні дані 1

2
6 7

Вихідні дані 1

3.2307692307692

Вхідні дані 2

3
1 1 1

Вихідні дані 2

0.8333333333333

Вхідні дані 3

11
1 2 3 4 5 6 7 8 9 10 11

Вихідні дані 3

9.4422713866103

Примітка

Зауважте, що в першому прикладі tourist міг би напевно виграти матч, щоразу обираючи другу задачу, а проти цієї стратегії ви могли б завжди обирати першу задачу й отримувати 6 очок. Однак tourist гратиме оптимально, щоб мінімізувати математичне сподівання вашої кількості очок, а це іноді може означати, що він дозволить вам виграти матч.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#318EditorialOpen题解jianglyView

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.