Universal Cup Judging System

Universal Cup

Süre Sınırı: 1.0 s Bellek Sınırı: 1024 MB Toplam puan: 100 Zorluk: [göster] Hack'lenebilir ✓
İstatistikler

לאחר שתרגל מיומנויות פילומינו (Fillomino),‏ Little Cyan Fish מחליט להתאמן עוד במשחק "The Artisan of Glimmith".

Little Cyan Fish מציג בפניך תחילה את החוקים של פילומינו:

עבור מלבן של $m$ שורות ו-$n$ עמודות, חלק את הרשת למספר אזורים (התאים של כל אזור חייבים להיות מחוברים במאונך או במאוזן), כך שלכל שני אזורים סמוכים יהיו שטחים שונים. בחלק מהתאים ברשת כבר רשומים מספרים. המספר מציין את שטח האזור שאליו התא שייך.

problem_18007_e875ed6aff86064e6bfc40f5b6e7c6a4.png

דוגמה לחידת פילומינו. מקור: Puzzle GP 2022 R4

כעת Little Cyan Fish נותן לך לוח פילומינו, והוא רוצה לבנות פתרון חוקי כלשהו עבור חידת פילומינו זו.

כמובן, בעיה זו קשה מדי עבור Little Cyan Fish, ולכן עליך לפתור רק את המקרה שבו $m = 1$. במילים אחרות, בהינתן שורה של $n$ תאים, ברצונך לחלק תאים אלה למספר מקטעים (כל מקטע מכיל במלואו מספר תאים רצופים), תוך דרישה ש:

  • לכל שני מקטעים סמוכים יהיו אורכים שונים;
  • חלק מהתאים מכילים מספרים, ומספרים אלה מציינים את מספר התאים במקטע שאליו תא זה שייך.

Little Cyan Fish מבקש ממך לקבוע האם קיים פתרון חוקי עבור הלוח. אם קיים, עליך גם להדפיס פתרון חוקי כלשהו.

קלט

ישנם מספר מקרי בדיקה. השורה הראשונה של הקלט מכילה מספר שלם בודד $T$ ($1 \le T$), המציין את מספר מקרי הבדיקה.

עבור כל מקרה בדיקה, השורה הראשונה של הקלט מכילה מספר שלם $n$ ($1 \le n \le 10^6$).

השורה הבאה מכילה $n$ מספרים שלמים $a_1, a_2, \dots, a_n$ ($0 \le a_i \le n$). אם $a_i = 0$, פירוש הדבר שלא מולא אף מספר בתא ה-$i$. אחרת, פירוש הדבר שהמספר $a_i$ מולא בתא ה-$i$.

מובטח כי סכום ערכי $n$ על פני כל מקרי הבדיקה אינו עולה על $10^6$.

פלט

עבור כל מקרה בדיקה, אם לא קיימת אף תוכנית חוקית למילוי המספרים, הדפס שורה בודדת "No".

אחרת, השורה הראשונה של הפלט מכילה את המחרוזת "Yes". השורה הבאה מדפיסה $n$ מספרים שלמים, המייצגים את אורך המקטע שבו ממוקם כל תא בתוכנית שבנית. אם קיימות מספר תוכניות העונות על הדרישות, תוכל להדפיס כל אחת מהן.

דוגמה

קלט 1

7
3
0 0 0
4
2 0 0 0
4
0 2 0 0
6
0 3 3 0 3 0
10
2 0 0 3 0 0 4 0 0 1
6
0 0 1 1 0 0
6
1 2 3 4 5 6

פלט 1

Yes
2 2 1
No
Yes
1 2 2 1
No
Yes
2 2 3 3 3 4 4 4 4 1
No
No

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.