Harjoiteltuaan Fillomino-taitojaan Little Cyan Fish päättää harjoitella lisää pelissä "The Artisan of Glimmith".
Little Cyan Fish esittelee sinulle ensin Fillominon säännöt:
Jaa $m$ rivin ja $n$ sarakkeen suorakulmainen ruudukko useisiin alueisiin (kunkin alueen ruutujen on oltava ortogonaalisesti yhtenäisiä) siten, että minkä tahansa kahden vierekkäisen alueen pinta-alat ovat erisuuret. Joihinkin ruudukon ruutuihin on jo valmiiksi kirjoitettu lukuja. Luku ilmoittaa sen alueen pinta-alan, johon ruutu kuuluu.
Esimerkki Fillomino-pulmasta. Lähde: Puzzle GP 2022 R4
Little Cyan Fish antaa sinulle nyt Fillomino-pelilaudan ja haluaa muodostaa minkä tahansa kelvollisen ratkaisun tähän Fillomino-pulmaan.
Tämä tehtävä on tietysti liian vaikea Little Cyan Fishille, joten sinun tarvitsee ratkaista vain tapaus $m = 1$. Toisin sanoen, kun annetaan $n$ ruudun rivi, haluat jakaa nämä ruudut useisiin jaksoihin (jokainen jakso sisältää kokonaan joukon peräkkäisiä ruutuja) siten, että:
- Minkä tahansa kahden vierekkäisen jakson pituudet ovat erisuuret;
- Jotkin ruudut sisältävät lukuja, ja nämä luvut ilmoittavat ruutujen lukumäärän siinä jaksossa, johon kyseinen ruutu kuuluu.
Little Cyan Fish pyytää sinua selvittämään, onko pelilaudalle olemassa kelvollista ratkaisua. Jos sellainen on olemassa, sinun tulee myös tulostaa mikä tahansa kelvollinen ratkaisu.
Syöte
Syötteessä on useita testitapauksia. Syötteen ensimmäinen rivi sisältää yhden kokonaisluvun $T$ ($1 \le T$), joka ilmoittaa testitapausten lukumäärän.
Jokaisessa testitapauksessa syötteen ensimmäinen rivi sisältää kokonaisluvun $n$ ($1 \le n \le 10^6$).
Seuraava rivi sisältää $n$ kokonaislukua $a_1, a_2, \dots, a_n$ ($0 \le a_i \le n$). Jos $a_i = 0$, se tarkoittaa, että $i$:nteen ruutuun ei ole kirjoitettu lukua. Muussa tapauksessa se tarkoittaa, että $i$:nteen ruutuun on kirjoitettu luku $a_i$.
On taattua, että lukujen $n$ summa yli kaikkien testitapausten ei ylitä arvoa $10^6$.
Tuloste
Jokaisessa testitapauksessa, jos lukujen täyttämiseksi ei ole olemassa mitään kelvollista tapaa, tulosta yksi rivi "No".
Muussa tapauksessa tulosteen ensimmäinen rivi sisältää merkkijonon "Yes". Seuraava rivi tulostaa $n$ kokonaislukua, jotka esittävät kunkin ruudun sisältävän jakson pituutta muodostamassasi ratkaisussa. Jos vaatimukset täyttäviä ratkaisuja on useita, voit tulostaa niistä minkä tahansa.
Esimerkki
Syöte 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
Tuloste 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