Universal Cup Judging System

Universal Cup

Límite de tiempo: 5.0 s Límite de memoria: 1024 MB Puntuación total: 100 Hackeable ✓
Estadísticas

تلقى الصغير P شجرة تحتوي على $n$ عقدة، جذرها عند العقدة $1$، وتبديلاً $p_i$ بطول $n$.

لكل عقدة $u$ في الشجرة، تُسمى العقدة $v$ الموجودة في الشجرة الجزئية للعقدة $u$ مهمة إذا وفقط إذا كان $u \ne v$ وكان موضع $v$ في التبديل يظهر قبل موضع $u$. ليكن $d_u$ هو أصغر مسافة من $u$ إلى أي عقدة مهمة (أو $d_u = -1$ إذا لم توجد عقد مهمة للعقدة $u$). تُعرَّف المسافة بين عقدتين بأنها عدد الحواف على المسار البسيط الذي يصل بينهما.

تُعطى لك الشجرة المجذرة والمصفوفة $d_i$. مهمتك هي إيجاد تبديل ممكن $p_i$؛ وإذا وُجدت عدة تبديلات صالحة، فأوجد التبديل الأصغر معجمياً.

تذكر أن التبديل $a$ يكون أصغر معجمياً من التبديل $b$ إذا وفقط إذا وُجد فهرس $i$ ($1 \le i \le n$) بحيث يكون $a_i < b_i$ ولكل $1 \le j < i$ يكون $a_j = b_j$.

الإدخال

يحتوي السطر الأول على عدد صحيح $T$ ($1 \le T \le 5 \times 10^4$)، يمثل عدد حالات الاختبار.

لكل حالة اختبار، يحتوي السطر الأول على عدد صحيح $n$ ($2 \le n \le 5 \times 10^5$)، يشير إلى عدد العقد في الشجرة.

يحتوي السطر الثاني على $n$ أعداد صحيحة $d_1, d_2, \dots, d_n$ ($-1 \le d_i \le n$).

يحتوي كل سطر من الأسطر الـ $n - 1$ التالية على عددين صحيحين $u$ و $v$ ($1 \le u, v \le n, u \ne v$)، يمثلان حافة تصل بين العقدتين $u$ و $v$ في الشجرة.

من المضمون ألا يتجاوز مجموع $n$ عبر جميع حالات الاختبار $5 \times 10^5$.

الإخراج

لكل حالة اختبار، اطبع سطراً واحداً يحتوي على $n$ أعداد صحيحة موجبة مفصولة بمسافات، تمثل التبديل الصالح الأصغر معجمياً؛ أو اطبع $-1$ إذا لم يوجد أي تبديل صالح.

مثال

الإدخال

3
5
-1 1 -1 -1 -1
1 2
2 3
2 4
1 5
10
0 1 1 1 -1 -1 -1 -1 -1 -1
5 3
4 3
8 4
4 2
4 1
2 10
9 5
5 7
6 1
10
2 -1 -1 -1 1 -1 -1 -1 -1 1
2 6
6 10
5 6
5 7
8 10
3 6
5 4
6 9
1 10

الإخراج

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

ملاحظة

بالنسبة لحالة الاختبار الأولى، التبديل $p = [1, 2, 3, 4, 5]$ غير صالح لأن العقدة $2$ ليس لها عقد مهمة، وبالتالي $d_2 = -1 \ne 1$. وبالمثل، التبديل $p = [3, 4, 1, 5, 2]$ غير صالح لأن $d_1 = 2 \ne -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.