Opgave 1: Logisch tekenen (Japanse puzzel)
Deze opgave loopt van dinsdag 27-11-2001 17:00 tot maandag 3-12-2001 17:00
Oplossingen via e-mail naar: gotcoders@hotmail.com
Vermeld in de titel je Nick + welke taal je gebruikt hebt.
<hr>
Logisch tekenen is een redelijk bekende puzzel zoals bijvoorbeeld een kruiswoordraadsel. Bij logisch tekenen is het de bedoeling dat aan de hand van een grid en gegevens over het patroon een afbeelding ontstaat.
In een Japanse puzzel worden per rij en kolom 1 of meerdere getallen mee gegeven (maximaal 5), die de lengtes aangeven van de ingekleurde blokken. Tussen de verschillende lengtes moet minimaal 1 cel leeg zijn.
Voorbeeld
Stel een rij heeft een lengte van 8 en de volgende lengtes zijn gegeven: 2, 3
Een mogelijk patroon is dan:
<table border="1" width="200" height="25"><tr><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td><td> </td></tr></table>
Maar kan ook deze zijn:
<table border="1" width="200" height="25"><tr><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td bgcolor="black"> </td></tr></table>
Ze moeten dus wel in dezelfde volgorde voorkomen!
Het volgende figuur geeft nog een simpel voorbeeld:
<table border="1" width="125" height="125"><tr><td> </td><td> </td><td bgcolor="black"> </td><td> </td><td> </td></tr><tr><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td></tr><tr><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td></tr><tr><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td></tr><tr><td> </td><td> </td><td bgcolor="black"> </td><td> </td><td> </td></tr></table>
Bovenstaand figuur wordt gedefinieerd door de volgende waardes:
Horizontaal:
<dl>
• 1
• 3
• 2, 2
• 3
• 1
</dl>
Verticaal:
<dl>
• 1
• 3
• 2, 2
• 3
• 1
</dl>
Invoer
Als invoer krijg je de breedte(b) en hoogte(h) van het grid. Deze waarden zijn altijd groter dan 1 en kleiner of gelijk aan 30. Deze waardes zijn gescheiden door een spatie.
Dan komen er b regels met op elke regel die lengtes die bij die kolom horen. Meerdere waardes worden gescheiden door een spatie.
Vervolgens komen er h regels met op elke regel die lengtes die bij die rij horen. Meerdere waardes worden gescheiden door een spatie.
Bovenstaande voorbeeld wordt vertaald in de volgende invoer:
<pre>
5 5
1
3
2 2
3
1
1
3
2 2
3
1
</pre>
Uitvoer
Jullie programma moet als uitvoer de tekening geven, dat wil zeggen voor elk valkje in het grid een streepje(-) als ie leeg is en voor elke vakje dat vol is een hekje(#). Dus bij bovenstaand voorbeeld krijg je de volgende uitvoer:
<pre>
--#--
-###-
##-##
-###-
--#--
</pre>
Deze opgave loopt van dinsdag 27-11-2001 17:00 tot maandag 3-12-2001 17:00
Oplossingen via e-mail naar: gotcoders@hotmail.com
Vermeld in de titel je Nick + welke taal je gebruikt hebt.
<hr>
Logisch tekenen is een redelijk bekende puzzel zoals bijvoorbeeld een kruiswoordraadsel. Bij logisch tekenen is het de bedoeling dat aan de hand van een grid en gegevens over het patroon een afbeelding ontstaat.
In een Japanse puzzel worden per rij en kolom 1 of meerdere getallen mee gegeven (maximaal 5), die de lengtes aangeven van de ingekleurde blokken. Tussen de verschillende lengtes moet minimaal 1 cel leeg zijn.
Voorbeeld
Stel een rij heeft een lengte van 8 en de volgende lengtes zijn gegeven: 2, 3
Een mogelijk patroon is dan:
<table border="1" width="200" height="25"><tr><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td><td> </td></tr></table>
Maar kan ook deze zijn:
<table border="1" width="200" height="25"><tr><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td bgcolor="black"> </td></tr></table>
Ze moeten dus wel in dezelfde volgorde voorkomen!
Het volgende figuur geeft nog een simpel voorbeeld:
<table border="1" width="125" height="125"><tr><td> </td><td> </td><td bgcolor="black"> </td><td> </td><td> </td></tr><tr><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td></tr><tr><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td></tr><tr><td> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td bgcolor="black"> </td><td> </td></tr><tr><td> </td><td> </td><td bgcolor="black"> </td><td> </td><td> </td></tr></table>
Bovenstaand figuur wordt gedefinieerd door de volgende waardes:
Horizontaal:
<dl>
• 1
• 3
• 2, 2
• 3
• 1
</dl>
Verticaal:
<dl>
• 1
• 3
• 2, 2
• 3
• 1
</dl>
Invoer
Als invoer krijg je de breedte(b) en hoogte(h) van het grid. Deze waarden zijn altijd groter dan 1 en kleiner of gelijk aan 30. Deze waardes zijn gescheiden door een spatie.
Dan komen er b regels met op elke regel die lengtes die bij die kolom horen. Meerdere waardes worden gescheiden door een spatie.
Vervolgens komen er h regels met op elke regel die lengtes die bij die rij horen. Meerdere waardes worden gescheiden door een spatie.
Bovenstaande voorbeeld wordt vertaald in de volgende invoer:
<pre>
5 5
1
3
2 2
3
1
1
3
2 2
3
1
</pre>
Uitvoer
Jullie programma moet als uitvoer de tekening geven, dat wil zeggen voor elk valkje in het grid een streepje(-) als ie leeg is en voor elke vakje dat vol is een hekje(#). Dus bij bovenstaand voorbeeld krijg je de volgende uitvoer:
<pre>
--#--
-###-
##-##
-###-
--#--
</pre>