QOJ.ac

QOJ

Límite de tiempo: 4.0 s Límite de memoria: 2048 MB Puntuación total: 100 Interactivo

#17326. El robo del siglo

Estadísticas

Tras planear el robo más elaborado para sustraer La Joya de la Corona del Conde Monte Carlo, te has encontrado con el obstáculo final en tu camino: una caja fuerte cerrada. Sin embargo, te has entrenado para este preciso momento y has perfeccionado tus habilidades de apertura de cajas fuertes.

La caja fuerte tiene $N$ diales, cada uno de los cuales puede ajustarse a cualquier valor entero de $1$ a $2N$. El Conde Monte Carlo ha configurado la caja fuerte con un valor secreto correcto para cada dial. Para intentar abrir la caja fuerte, ajustas cada dial a un valor de tu elección y luego giras la manija de la puerta. Si cada dial está ajustado a su valor secreto correcto, no sentirás resistencia y la puerta se abrirá inmediatamente.

Por supuesto, es muy poco probable que logres abrir la caja fuerte adivinando al azar todos los valores secretos correctos. Sin embargo, como experto en apertura de cajas fuertes, incluso si tu suposición es incorrecta, sentirás algo de resistencia al intentar abrir la puerta y puedes usar ese conocimiento para ayudar a descifrar los valores secretos correctos. Si un dial tiene un valor secreto $h$ y el dial se ajusta a $d$ cuando intentas abrir la puerta, el dial ejercerá una resistencia $|h - d|$ al girar la manija. Puedes sentir la resistencia máxima sobre todos los diales. (¡Ten en cuenta que si este valor es $0$, has abierto la caja fuerte con éxito y completado tu robo!)

Desafortunadamente, el equipo de seguridad ha sido alertado de tu presencia y se está acercando a tu ubicación. Puedes realizar un intento de abrir la caja fuerte por segundo, ¡pero están a $4N$ segundos de distancia! ¿Puedes completar el robo antes de que te atrapen?

Interacción

Este es un problema interactivo. La interacción comienza leyendo un entero $N$ ($1 \le N \le 500$) desde la entrada estándar, el número de diales en la caja fuerte. Tu programa puede realizar hasta $4N$ intentos para abrir la puerta de la caja fuerte especificando un valor para probar en cada dial. Luego se te informará la resistencia que sientes en la manija de la puerta después de cada intento.

Para realizar un intento, imprime una línea que contenga $N$ enteros separados por espacios $d_1, d_2, \dots, d_N$ ($1 \le d_i \le 2N$), los valores que propones para cada dial. Luego, lee un solo entero desde la entrada estándar que representa la resistencia que sentiste en la manija de la puerta, $\max_i |h_i - d_i|$, donde $h_i$ es el valor secreto (desconocido para ti) del dial $i$. Si la resistencia es $0$, has abierto la caja fuerte y tu programa debe terminar. De lo contrario, si te quedan intentos, puedes volver a intentarlo.

Si te quedas sin intentos, tu programa debe salir limpiamente (aunque será juzgado como incorrecto por no lograr abrir la caja fuerte a tiempo para escapar de los guardias).

El valor secreto de cada dial fue configurado por el Conde Monte Carlo antes del robo y no cambiará en respuesta a tus intentos de apertura.

Nota

No olvides vaciar el flujo de salida (flush) después de cada línea que imprimas y salir limpiamente después de que la interacción haya terminado. Por favor, asegúrate también de seguir el protocolo de interacción anterior exactamente con respecto a qué información imprimir en qué línea de salida: por ejemplo, si el protocolo requiere que imprimas una lista de enteros separados por espacios en una sola línea, el juez no aceptará cada entero en su propia línea.

Si el juez recibe una entrada inválida o inesperada, imprimirá $-1$ y luego saldrá inmediatamente. Tu programa debe detectar este informe de error y salir limpiamente para recibir un veredicto de Wrong Answer. Si tu programa se bloquea esperando más interacción del juez, o intenta interpretar el $-1$ como un valor de resistencia, podrías recibir un veredicto de rechazo diferente (como Time Limit Exceeded o Runtime Error) en lugar de Wrong Answer.

Se te ha proporcionado una herramienta de línea de comandos para pruebas locales. La herramienta tiene comentarios en la parte superior que explican su uso.

Ejemplos

Ejemplo 1

3
1 1 1
5
3 4 5
1
4 5 6
0

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.