Филломино (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$-ші ұяшыққа ешқандай сан жазылмағанын білдіреді. Әйтпесе, бұл $i$-ші ұяшыққа $a_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