QOJ.ac

QOJ

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

#958. Lockout vs tourist

Statistics

Estás jugando un encuentro de tipo "lockout". Las reglas son simples: es una competencia 1v1, hay $n$ problemas con varios puntos asignados, y solo el primer participante en obtener la aceptación del problema recibe los puntos; incluso si el otro llega 1 segundo tarde, no recibe puntos. Para simplificar, no incluiremos límites de tiempo ni victorias tempranas: el encuentro continúa hasta que cada problema sea resuelto por al menos uno de los participantes.

Eres bastante bueno, pero... te enfrentas a tourist. Es un desastre, lo sé. Sería difícil ganar, pero esperas arrebatar algunos puntos para salvar tu reputación. Si tú y tourist trabajan en el mismo problema, él te ganará, seguro. ¡Pero si has elegido un problema diferente, entonces es tu oportunidad! ¡Podrás resolver este problema antes que tourist! Pero entonces él entrará en modo "berserk" y resolverá todos los problemas restantes instantáneamente. Un problema es mejor que nada, ¿no?

Formalicemos un poco el proceso. Cada vez, tú y tourist tienen algunos problemas sin resolver para elegir. Si no quedan problemas sin resolver, el juego termina y obtienes 0 puntos. De lo contrario, tanto tú como tourist deben elegir un problema en el cual trabajar, sin saber qué problema eligió la otra persona. Si eliges el mismo problema, tourist lo resuelve antes que tú y volvemos al mismo estado inicial con menos problemas restantes. De lo contrario, obtienes los puntos del problema que has elegido, pero el juego termina inmediatamente porque tourist resuelve todos los problemas restantes instantáneamente.

Tú quieres maximizar la cantidad de puntos que obtendrás, tourist quiere minimizarla. ¿Cuál es el resultado esperado del juego si tanto tú como tourist se comportan de manera óptima?

Entrada

La primera línea contiene un entero $n$ ($1 \le n \le 22$) — el número de problemas. La segunda línea contiene $n$ enteros $a_i$ ($1 \le a_i \le 10^9$) — los puntos de cada problema.

Salida

Imprime un número — tu puntuación esperada.

Tu respuesta se considera correcta si su error absoluto o relativo no excede $10^{-6}$.

Formalmente, sea $a$ tu respuesta y $b$ la respuesta del jurado. Tu respuesta es aceptada si y solo si $\frac{|a-b|}{\max(1, |b|)} \le 10^{-6}$.

Ejemplos

Entrada 1

2
6 7

Salida 1

3.2307692307692

Entrada 2

3
1 1 1

Salida 2

0.8333333333333

Entrada 3

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

Salida 3

9.4422713866103

Nota

Nota que en el primer ejemplo, tourist podría asegurar ganar el encuentro yendo siempre por el segundo problema, y contra esta estrategia tú siempre podrías ir por el primer problema y obtener 6 puntos. Pero tourist jugará de manera óptima para minimizar tu puntuación esperada, lo que a veces podría significar permitirte ganar el encuentro.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#318EditorialOpen题解jiangly2025-12-14 07:04:13View

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.