หลังจากฝึกฝนทักษะการเล่นฟิลโลมิโน (Fillomino) แล้ว Little Cyan Fish ก็ตัดสินใจฝึกฝนเพิ่มเติมในเกม "The Artisan of Glimmith"
ขั้นแรก Little Cyan Fish แนะนำกฎของฟิลโลมิโนให้คุณรู้จัก:
สำหรับตารางสี่เหลี่ยมผืนผ้าขนาด $m$ แถว และ $n$ คอลัมน์ ให้แบ่งตารางออกเป็นหลายๆ บริเวณ (ช่องในแต่ละบริเวณต้องเชื่อมต่อกันในแนวตั้งหรือแนวนอน) โดยที่สองบริเวณใดๆ ที่อยู่ติดกันต้องมีพื้นที่ต่างกัน บางช่องในตารางมีตัวเลขเติมไว้แล้ว ตัวเลขนั้นระบุพื้นที่ของบริเวณที่ช่องนั้นสังกัดอยู่
ตัวอย่างของปริศนาฟิลโลมิโน ที่มา: 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