- Time limit: 1.00 s
- Memory limit: 512 MB
Tehtäväsi on muodostaa n \times m -ruudukko, joka sisältää kaikki kokonaisluvut 1,2,\dots, n \cdot m. Ruudukko tulee muodostaa niin, että missään ruudukon kohdassa ei ole vierekkäin (vaaka- tai pystysuunnassa) kahta peräkkäistä lukua. Toisin sanoen jos luvut x ja y ovat vierekkäin ruudukossa, tulee päteä |x-y| \neq 1.
Esimerkiksi kun ruudukon koko on 3 \times 4, sen tulee sisältää kokonaisluvut 1,2,\dots,12. Tässä on yksi mahdollinen tapa muodostaa ruudukko:
Syöte
Ensimmäisellä rivillä on kokonaisluku t: testien määrä.
Jokaisella seuraavalla rivillä on kaksi kokonaislukua n ja m: ruudukon korkeus ja leveys.
Tuloste
Tulosta ensin YES
, jos ruudukon voi muodostaa, ja NO
muuten.
Jos ruudukon voi muodostaa, tulosta vielä esimerkki ruudukosta. Voit tulostaa minkä tahansa kelvollisen ratkaisun.
Esimerkki
Syöte:
5 1 5 2 2 1 3 3 4 4 2
Tuloste:
YES 1 4 2 5 3 NO NO YES 10 7 5 2 3 1 9 12 8 4 11 6 YES 1 7 3 5 6 8 2 4
Arvostelu
Jokaisessa testissä 1 \le t \le 100 ja 1 \le n,m \le 10. Saat tehtävästä 100 pistettä, jos koodisi tuottaa oikean tuloksen kaikissa testeissä.