Universal Cup Judging System

Universal Cup

시간 제한: 1.0 s 메모리 제한: 1024 MB 총점: 100 난이도: [표시] 해킹 가능 ✓
통계

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.

problem_18007_e875ed6aff86064e6bfc40f5b6e7c6a4.png

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

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.