• Language:
  • Time limit: 1.00 s
  • Memory limit: 512 MB
 __________________________________
< Segmentation fault (core dumped) >
 ----------------------------------
       \   ^__^
        \  (oo)\_______
           (__)\       )\/\
               ||----w |
               ||     ||

ASCII-merkistö on tietokoneen perusmerkistö, joka sisältää esimerkiksi englannin kielen aakkoset, numerot ja tavallisimmat välimerkit. ASCII-merkistö on ollut käytössä kauan, ja lähes yhtä kauan sen avulla on tehty taidetta.

Tässä tehtävässä sinun tulee piirtää monikulmio ASCII-merkkien avulla. Sinulle annetaan monikulmion kärkipisteet, ja tehtäväsi on piirtää kuvio ruudukkoon.

Syöte

Ensimmäisellä rivillä on kolme kokonaislukua n, m ja k: ruudukon korkeus ja leveys sekä monikulmion kärkipisteiden määrä.

Seuraavat k riviä määrittelevät monikulmion kärkipisteet. Kullakin rivillä on kaksi kokonaislukua y ja x: kärkipisteen rivi ja sarake ruudukossa.

Kärkipisteet on annettu syötteessä järjestyksessä niin, että peräkkäiset kärkipisteet tulee yhdistää toisiinsa janalla. Myös syötteen ensimmäinen ja viimeinen kärkipiste tulee yhdistää toisiinsa janalla.

Voit olettaa, että jokainen monikulmion jana on vaakasuuntainen, pystysuuntainen tai vinosuuntainen 45 asteen kulmassa. Voit lisäksi olettaa, että monikulmio ei leikkaa itseään.

Tuloste

Ohjelmasi tulee tulostaa n riviä, joista kullakin on m merkkiä. Käytä kuvassa seuraavia merkkejä:

  • Merkki * tarkoittaa monikulmion kärkipistettä.
  • Merkit =, |, / ja \ ilmaisevat monikulmion janat.
  • Merkki # tarkoittaa monikulmion sisäpuolista aluetta.
  • Merkki . tarkoittaa monikulmion ulkopuolista aluetta.

Saat osan tehtävän pisteistä, kun piirrät oikein monikulmion kärkipisteet ja janat. Saat loput pisteet, kun myös sisäpuolinen ja ulkopuolinen alue on merkitty oikein.

Esimerkki

Syöte:

8 9 5
5 2
2 5
5 8
7 8
7 2

Tuloste (osittainen ratkaisu):

.........
....*....
.../.\...
../...\..
.*.....*.
.|.....|.
.*=====*.
.........

Tuloste (täysi ratkaisu):

.........
....*....
.../#\...
../###\..
.*#####*.
.|#####|.
.*=====*.
.........

Arvostelu

Tehtävässä on kymmenen testiä, joissa 1 \le n, m \le 100 ja 1 \le k \le 1000. Voit saada jokaisesta testistä enintään 10 pistettä, ja kokonaispistemääräsi on testien pisteiden summa.

Saat testistä 7 pistettä, jos monikulmion kärkipisteet ja janat on merkitty oikein ja jokaisessa muussa ruudussa on sisäpuolisen tai ulkopuolisen alueen merkki.

Saat testistä 10 pistettä, jos lisäksi monikulmion sisäpuolinen ja ulkopuolinen alue on merkitty oikein.