Hieronder staan twee voorbeeldvragen: ze geven je een idee van
de vragen die je tijdens de wedstrijd mag
verwachten. Eentje is gemakkelijk, de andere is eerder
moeilijk.
(1) Ascii-art (gemakkelijk)
Schrijf een programma dat een ascii-art figuur laat
zien op het scherm. De grootte van de figuur is de
invoer voor je programma: het is een geheel getal strikt
tussen 0 en 100 (dus 0 en 100 niet inbegrepen). Hieronder
staan wat figuren voor verschillende gegeven
groottes. Je moet zelf de correcte manier vinden om voor
andere groottes de juiste figuur op het scherm te
toveren.
Voorbeelden
Invoer:
1
Uitvoer:
***
* *
*** ***
* *
*** ***
* *
***
Invoer:
2
Uitvoer:
***
* *
*** ***
* *
*** ***
* *
*** ***
* *
*** ***
* *
***
Invoer:
3
Uitvoer:
***
* *
*** ***
* *
*** ***
* *
*** ***
* *
*** ***
* *
*** ***
* *
*** ***
* *
***
Meer uitleg:
De ascii-art figuur moet afgedrukt worden op de
standaard uitvoer. De uitvoer mag een of meer lege regels
bevatten voor en na de regels van de eigenlijke figuur. De
regels van de figuur zelf bestaan enkel uit spaties (geen
tabs), het karakter * en newline. Op het einde van elke regel
mogen een willekeurig aantal spaties staan. Het aantal spaties
aan het begin van de regel is van belang: het meest linkse
* karakter staat tegen de linker marge en wordt niet
voorafgegaan door een spatie.
(2) Polyominos (moeilijk)
Dominoblokjes hebben twee vierkantjes, en de blokjes uit
tetris - genaamd tetrominos - hebben er vier: het zijn
speciale gevallen van polyominos. In het algemeen is
een polyomino een figuur die bestaat uit N
vierkantjes die aan elkaar hangen doordat de vierkantjes een
zijde gemeenschappelijk hebben.
Voor N = 2 bestaat er essentieel maar een
polyomino (een domino dus), namelijk
Je denkt misschien dat
een andere domino is, maar je krijgt die figuur door de vorige
te draaien over 90 graden, en dus is dat eigenlijk geen
nieuwe.
Voor N = 4 zijn er 7 verschillende tetrominos:
De opdracht:
Schrijf een programma dat bepaalt hoeveel verschillende
polyominos er zijn voor een gegeven N. Twee
polyominos zijn verschillend indien ze niet door een draaiing
van 90 of 180 graden in elkaar kunnen getransformeerd worden.
De invoer is een geheel getal N in [1,10], dus inclusief 1 en 10.
De output is een geheel getal.
Voorbeelden:
Invoer:
2
Uitvoer:
1
Invoer:
4
Uitvoer:
7
Andere programmeerwedstrijden
Vragen van andere programmeerwedstrijden vind je op
onderstaande websites: ze zijn meestal moeilijker dan wat wij
voor je in petto hebben en kunnen dus dienen als oefenmateriaal.
|