Coloreando Geysers#11731

Coloreando Geysers

1 segundo
256 megabytes
Media

Una vez, Lucy encontró una cueva en uno de los planetas del sistema Link-Cut. La cueva consiste en salas y n - 1 pasajes; cada pasaje conecta dos salas, y es posible llegar a cualquier otra sala desde cualquier sala a través de los pasajes.

En cada sala, hay un géiser de color. Cuando el géiser de color en la sala número erupciona, colorea todas las salas que están a una distancia de no más de d_i de la sala en el color número . La distancia entre dos salas se define como el número mínimo de pasajes que necesitas recorrer para moverte entre ellas.

Lucy conoce la estructura de la cueva, los colores de algunas salas, y que cada géiser erupcionó exactamente una vez. Con base en esta información, determina cualquier orden posible en el que las erupciones podrían haber ocurrido.

Entrada

La primera línea contiene un solo entero (2 \le n \le 10^5) — el número de salas en la cueva.

La segunda línea contiene enteros d_1, d_2, ... , d_n (0 \le d_i \le n - 1) — los parámetros de distancia de coloración para los géiseres.

La tercera línea contiene enteros c_1, c_2, ... , c_n (-1 \le c_i \le n), donde c_i es el número de color de la -ésima sala o , si el color de la -ésima sala es desconocido.

Las siguientes n - 1 líneas describen los pasajes. La -ésima línea contiene dos enteros u_i, v_i (1 \le u_i, v_i \le n, u_i \ne v_i) — las salas conectadas por el pasaje.

Salida

En una sola línea, imprime enteros p_1, p_2, ... , p_n, donde p_i es el número de la sala donde se encuentra el géiser que erupcionó en la -ésima. Se garantiza que hay al menos un orden que corresponde a los datos de entrada.

Ejemplos

Ejemplo

Loading
Loading

Ejemplo 1

Loading
Loading

Nota

En el primer ejemplo, aquí están los colores de las salas después de cada erupción, asumiendo que sucedieron en el orden dado en la salida:

  • 1, 1, 1, 1, 1

  • 5, 1, 1, 1, 5

  • 4, 1, 1, 4, 5

  • 3, 1, 3, 4, 5

  • 2, 2, 3, 4, 5

Puntuación

  1. ( puntos): n \le 8;

  2. ( puntos): d_i = 1 (1 \le i \le n);

  3. ( puntos): u_i = 1 (1 \le i \le n - 1);

  4. ( puntos): n \le 5 \cdot 10^4;

  5. ( puntos): sin restricciones adicionales.