QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#18517. Lluvia de Noviembre

الإحصائيات

Estás dirigiendo una gran sinfonía en evolución. El conjunto consiste en músicos, donde cada músico toca una frecuencia armónica específica (representada por un entero no negativo). Inicialmente, el escenario está completamente vacío. A lo largo de $n$ pasos secuenciales, se realiza exactamente una acción para cambiar la disposición. Para cada paso $i = 1, 2, \dots, n$, se realiza una operación:

  • Si la operación es + (Entrar): Un nuevo músico se une al conjunto. Debes decidir la frecuencia exacta $b_i$ que tocará.
  • Si la operación es - (Salir): Un músico abandona el escenario. Debes elegir la frecuencia $b_i$ de un músico que esté tocando actualmente y hacer que exactamente uno de ellos deje de tocar.

En cada paso, la actuación se fundamenta en la "Nota Fantasma". Debido a la acústica única de la sinfonía, la Nota Fantasma nunca es realmente tocada por nadie en el escenario. En cambio, su tono siempre está determinado por la frecuencia más baja que actualmente falta en la actuación. El tono de la Nota Fantasma se define matemáticamente como el mex (mínimo valor excluido). Sea $S$ un multiconjunto de enteros no negativos que representa la colección de frecuencias que actualmente toca el conjunto. El mínimo valor excluido, denotado como $\operatorname{mex}(S)$, es el entero no negativo más pequeño $x$ tal que $x \notin S$.

Después de la $i$-ésima acción, se requiere que la Nota Fantasma resuene exactamente en $a_i$.

Tu tarea es determinar si existe una secuencia válida de frecuencias elegidas $b_1, b_2, \dots, b_n$ que orqueste perfectamente la progresión requerida de la Nota Fantasma en cada paso, y construir una de esas secuencias si existe.

Entrada

Este problema tiene múltiples casos de prueba. La primera línea de entrada contiene un solo entero $t$ ($1 \le t \le 3 \cdot 10^5$), que representa el número de casos de prueba.

Para cada caso de prueba, cada actuación se describe en tres líneas:

  • La primera línea contiene un solo entero $n$ ($1 \le n \le 5000$), que representa el número total de pasos secuenciales en la actuación.
  • La segunda línea contiene una cadena $op$ de longitud $n$, compuesta exclusivamente por los caracteres + y -. El carácter $op_i$ indica la naturaleza de la $i$-ésima acción: + significa que un músico Entra, y - significa que un músico Sale.
  • La tercera línea contiene $n$ enteros $a_1, a_2, \dots, a_n$ ($0 \le a_i \le n$), que representan el tono exacto requerido de la Nota Fantasma después de la $i$-ésima acción.

Está estrictamente garantizado que la suma de $n^2$ sobre todas las actuaciones no excede $5000^2$.

Salida

Para cada actuación, muestra tu resultado de la siguiente manera:

Si es imposible orquestar la progresión requerida de la Nota Fantasma, imprime una sola línea que contenga la palabra NO.

De lo contrario, imprime dos líneas:

  • La primera línea debe contener la palabra YES;
  • La segunda línea debe contener $n$ enteros no negativos $b_1, b_2, \dots, b_n$, que representan la frecuencia específica tocada por el músico que entra o sale en cada paso correspondiente.

Cada frecuencia $b_i$ debe satisfacer perfectamente las restricciones acústicas y las reglas operativas descritas en el enunciado del problema. Se permite generar cualquier entero no negativo válido, siempre que sea representable por un entero con signo estándar de 64 bits.

Si hay múltiples secuencias válidas de frecuencias que satisfacen la actuación, puedes imprimir cualquiera de ellas.

Ejemplos

Entrada 1

4
2
++
0 2
3
+++
0 1 3
3
+-+
1 0 2
6
++-+-+
0 2 0 0 0 1

Salida 1

YES
1 0
YES
2 0 1
NO
YES
1 0 0 7 1 0

Nota

Hay cuatro casos de prueba en el ejemplo 1.

  • En el primer caso de prueba, insertar $1$ mantiene el mex (Nota Fantasma) $0$, luego insertar $0$ hace que el mex sea $2$.
  • En el segundo caso de prueba, insertar $2,0,1$ hace que la secuencia de mex sea $0,1,3$.
  • En el tercer caso de prueba, mex $1$ después de la primera operación fuerza la inserción de $0$; después de borrarlo, una inserción más no puede hacer mex $2$, por lo que la respuesta es NO.
  • En el cuarto caso de prueba, los valores impresos hacen que el multiconjunto evolucione con la secuencia de mex $0,2,0,0,0,1$.

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.