CSES - Algojoulu 2023 - Lumilinnan paluu
  • Time limit: N/A
  • Memory limit: N/A

Uolevi rakastaa talvea ja haluaa rakentaa sen kunniaksi lumilinnan. Valitettavasti Uolevi on tänäkin vuonna fiktiivinen henkilö, eikä siksi osaa rakentaa. Auta pelastamaan Uolevin joulu suunnittelemalla hänen unelmalinnansa!

Uolevin mielestä linnan on oltava tasan 102 ruutua leveä ja korkea. Jokainen ruutu on joko tyhjä ('.') tai tukeva lumiseinä ('#'). Kaikista tyhjistä ruuduista on voitava kulkea toisiinsa ja ulkoreunalla on oltava tasan yksi sisäänkäynti (tyhjä ruutu).

Lisäksi Uolevi haluaa linnan sisätilojen olevan tietynlaiset: Uolevilla on mielessään jokaisesta 3 \times 3 aliruudukosta sen sisältämien seinien määrä.

Esimerkiksi lumilinna

#.##
#..#
#.##
####

sisältää aliruudukot

#.#  .##  #..  ..#
#..  ..#  #.#  .##
#.#  .##  ###  ###,

joiden sisältämien seinien määrät kuvataan ruudukkona

5 5
6 6

Syöte

Uolevin toiveet on listattu tiedostossa input.in. Tiedosto sisältää kokoa 100 \times 100 olevan taulukon, jonka jokainen luku kuvaa sitä vastaavan 3 \times 3 aliruudukon seinien määrän.

Tuloste

Tehtävään palautetaan yksi tekstitiedosto, jonka tulee sisältää täsmälleen 102 \times 102 merkkiä ruudukossa kuvaten Uolevin toivelinnan. Saat 10^{-4} pistettä jokaisesta toiveesta, jonka onnistut täyttämään. Lopuksi keräämäsi pistemäärä neliöidään ja kerrotaan sadalla, eli täydet 100 pistettä saat täyttämällä kaikki 10000 toivetta.