- 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ä.
