Opgave 2: Decode it
Deze opgave loopt van woensdag 5-12-2001 10:00 tot dinsdag 12-12-2001 24:00.
Oplossing via email naar: <a href="mailto:gotcoders@gdries.com">gotcoders@gdries.com</a>
<font size="+1">LET OP E-MAIL ADRES IS GEWIJZIGD</font>
Vermeld in de titel je nickname en welke taal je gebruikt hebt.
Het programma krijgt een maximum runtime van 10 minuten. Ieder programma dat langer draait om de oplossing te vinden krijgt een 'runtime exceeded exception'.
Denk eraan dat je je inzending zipt, dus source & binary in 1 file aanleveren!!
<hr>
Alle programma's lezen hun input van de stdin en schrijven naar de stdout. Voor programma's met een Gui mag dit ook een textarea zijn. Maar op eigen risico! Als de testset niet in de textarea past is dat jullie probleem.
Als output naar stderr in de console verschijnt wordt het gezien als output naar de stdout.
Je kan erop vertrouwen dat de invoer correct is en deze behoeft dan ook geen foutafvanging.
Veel plezier en succes!
<hr>
De GoT-crew heeft natuurlijk zaken te bespreken die via het internet verstuurd moeten worden aangezien ze elkaar over het algemeen niet IRL kennen. Deze zaken zijn natuurlijk niet voor de gebruikers bedoeld, aangezien onder de GoT users genoeg gebruikers zijn die de E-mail boxen kunnen kraken hebben de mod's van P&W (ACM, chem & wasigh) een coderingssysteem gemaakt (lees geleend
). En daarvoor natuurlijk een mooi encryptie en decriptie programma geschreven. Maar er is natuurlijk ook veel crew op GoT aanwezig die niet in staat is zo'n programma zelf te schrijven (want deze mensen hebben hun kwaliteiten op een ander vlak liggen(overclocken enzo
)). Omdat ACM, chem en wasigh het druk zat hebben met het modereren mogen jullie deze crewleden helpen met een programma te schrijven. Het houdt julle rustig, geeft de mods de kans om te modden en zorgt dat de rest van de crew hun hoofd niet hoeft te breken.
Voor de codering hebben de P&W mods de volgende methode bedacht. (het is misschien een zwak algoritme, maar voor de P&W mod's is dit al heel wat
). Voor elke letter hebben de mods een cijfer gepakt op zo'n manier dat er meerdere letters bij een cijfer kunnen horen. Op zo'n manier dat de volgende tabel gevormd kan worden. (Er wordt geen onderscheid gemaakt tussen hoofdletters en niet-hoofdletters)
<table><tr><td>1</td><td>A,B,C</td><tr><tr><td>2</td><td>D,E,F</td><tr><tr><td>3</td><td>G,H,I</td><tr><tr><td>4</td><td>J,K,L</td><tr><tr><td>5</td><td>M,N,O</td><tr><tr><td>6</td><td>P,Q,R</td><tr><tr><td>7</td><td>S,T,U</td><tr><tr><td>8</td><td>V,W,X</td><tr><tr><td>9</td><td>Y,Z</td><tr></table>
uit bijvoorbeeld de cijfercombinatie 817333 kan het woord: "wasigh" gemaakt worden, maar ook "vasggg" Waarbij het laatste geen algemeen bekend woord is
.
Om te kijken welk woord het moet zijn heeft het programma een ingebouwde library, met welke woorden in de tekst voor kunnen komen en de prioriteit van dat woord. Als bij de combinatie 522 twee woorden horen namelijk "MEE" & "NEO" en neo heeft een hogere prioriteit dan wordt NEO weergeven en niet MEE. Bij gelijke prioriteit geldt de volgorde van het alfabet. De waarschijnlijkheid van een combinatie word bepaald door de som van de waarschijnlijkheden van de woorden die met die combinatie beginnen. Als er bijvoorbeeld mee, meedoen en meemaken in de libary voorkomen dan is de waarschijnlijkheid dat mee komt gelijk aan de waarschijnlijkheden van mee, meedoen en meemaken bij elkaar opgeteld. De gebruiker kan ook gedeeltes typen van woorden die in de library voorkomen. als er bijvoorbeeld "meedoen" in voorkomt dan kan de gebruiker 522 typen om "mee" te krijgen ook al staat het woord "mee" zelf niet in de library.
Wat jullie moeten doen is een invoer programma maken. Zodat de crew makkelijk berichten kan intypen. Daarbij typen ze de cijfers en krijgen ze het best passende woord op het scherm. (lees voor typen stdin en voor scherm stdout).
De input bestaat uit een geheel getal (n) met het aantal woorden in de library( dit getal ligt tussen (niet inclusief!) de 2 en de 1000). Daarin volgen n woorden (van maximaal 50 karakters) met daarachter een spatie en een geheel getal wat de waarschijnlijkheid aangeeft het waarschijnlijkheidsgetal ligt tussen (niet inclusief!) de 0 en de 100.
Na n regels komt er weer een geheel getal wat het aantal cijfercombinatie's aangeeft wat uitgevoerd dient te worden. Deze cijfercombinatie bevat max 50 cijfers. De cijfercombinatie wordt beindigd door een 0 (het cijfer "nul"). Voor elke cijfer combinatie moet na elk ingevoerde cijfer het de karakters gegeven worden die op het scherm verschijnen. Als er geen woord bij de cijfercombinatie gevonden kan worden moet "onmogelijk" uitgevoerd worden.
Testinvoer:
<pre>
5
hell 3
hello 4
idea 8
next 8
super 3
3
324450
32210
380
</pre>
Testuitvoer
<pre>
i
id
hel
hell
hello
i
id
ide
idea
i
onmogelijk
</pre>
</p>
<hr>
Mocht je problemen tegen komen in de opgave mail of icq dan Jury dan even. zeker wanneer een opmerking erover de opgave kan verpesten.
Deze opgave loopt van woensdag 5-12-2001 10:00 tot dinsdag 12-12-2001 24:00.
Oplossing via email naar: <a href="mailto:gotcoders@gdries.com">gotcoders@gdries.com</a>
<font size="+1">LET OP E-MAIL ADRES IS GEWIJZIGD</font>
Vermeld in de titel je nickname en welke taal je gebruikt hebt.
Het programma krijgt een maximum runtime van 10 minuten. Ieder programma dat langer draait om de oplossing te vinden krijgt een 'runtime exceeded exception'.
Denk eraan dat je je inzending zipt, dus source & binary in 1 file aanleveren!!
<hr>
Alle programma's lezen hun input van de stdin en schrijven naar de stdout. Voor programma's met een Gui mag dit ook een textarea zijn. Maar op eigen risico! Als de testset niet in de textarea past is dat jullie probleem.
Als output naar stderr in de console verschijnt wordt het gezien als output naar de stdout.
Je kan erop vertrouwen dat de invoer correct is en deze behoeft dan ook geen foutafvanging.
Veel plezier en succes!
<hr>
De GoT-crew heeft natuurlijk zaken te bespreken die via het internet verstuurd moeten worden aangezien ze elkaar over het algemeen niet IRL kennen. Deze zaken zijn natuurlijk niet voor de gebruikers bedoeld, aangezien onder de GoT users genoeg gebruikers zijn die de E-mail boxen kunnen kraken hebben de mod's van P&W (ACM, chem & wasigh) een coderingssysteem gemaakt (lees geleend
Voor de codering hebben de P&W mods de volgende methode bedacht. (het is misschien een zwak algoritme, maar voor de P&W mod's is dit al heel wat
<table><tr><td>1</td><td>A,B,C</td><tr><tr><td>2</td><td>D,E,F</td><tr><tr><td>3</td><td>G,H,I</td><tr><tr><td>4</td><td>J,K,L</td><tr><tr><td>5</td><td>M,N,O</td><tr><tr><td>6</td><td>P,Q,R</td><tr><tr><td>7</td><td>S,T,U</td><tr><tr><td>8</td><td>V,W,X</td><tr><tr><td>9</td><td>Y,Z</td><tr></table>
uit bijvoorbeeld de cijfercombinatie 817333 kan het woord: "wasigh" gemaakt worden, maar ook "vasggg" Waarbij het laatste geen algemeen bekend woord is
Om te kijken welk woord het moet zijn heeft het programma een ingebouwde library, met welke woorden in de tekst voor kunnen komen en de prioriteit van dat woord. Als bij de combinatie 522 twee woorden horen namelijk "MEE" & "NEO" en neo heeft een hogere prioriteit dan wordt NEO weergeven en niet MEE. Bij gelijke prioriteit geldt de volgorde van het alfabet. De waarschijnlijkheid van een combinatie word bepaald door de som van de waarschijnlijkheden van de woorden die met die combinatie beginnen. Als er bijvoorbeeld mee, meedoen en meemaken in de libary voorkomen dan is de waarschijnlijkheid dat mee komt gelijk aan de waarschijnlijkheden van mee, meedoen en meemaken bij elkaar opgeteld. De gebruiker kan ook gedeeltes typen van woorden die in de library voorkomen. als er bijvoorbeeld "meedoen" in voorkomt dan kan de gebruiker 522 typen om "mee" te krijgen ook al staat het woord "mee" zelf niet in de library.
Wat jullie moeten doen is een invoer programma maken. Zodat de crew makkelijk berichten kan intypen. Daarbij typen ze de cijfers en krijgen ze het best passende woord op het scherm. (lees voor typen stdin en voor scherm stdout).
De input bestaat uit een geheel getal (n) met het aantal woorden in de library( dit getal ligt tussen (niet inclusief!) de 2 en de 1000). Daarin volgen n woorden (van maximaal 50 karakters) met daarachter een spatie en een geheel getal wat de waarschijnlijkheid aangeeft het waarschijnlijkheidsgetal ligt tussen (niet inclusief!) de 0 en de 100.
Na n regels komt er weer een geheel getal wat het aantal cijfercombinatie's aangeeft wat uitgevoerd dient te worden. Deze cijfercombinatie bevat max 50 cijfers. De cijfercombinatie wordt beindigd door een 0 (het cijfer "nul"). Voor elke cijfer combinatie moet na elk ingevoerde cijfer het de karakters gegeven worden die op het scherm verschijnen. Als er geen woord bij de cijfercombinatie gevonden kan worden moet "onmogelijk" uitgevoerd worden.
Testinvoer:
<pre>
5
hell 3
hello 4
idea 8
next 8
super 3
3
324450
32210
380
</pre>
Testuitvoer
<pre>
i
id
hel
hell
hello
i
id
ide
idea
i
onmogelijk
</pre>
</p>
<hr>
Mocht je problemen tegen komen in de opgave mail of icq dan Jury dan even. zeker wanneer een opmerking erover de opgave kan verpesten.