
(klik voor opgave 2, opgave 3) Opgave 1.pdf
Plaatsnaamcodes.
In het buitenland zie je vaak dat een nummerbord begint met een code van enkele letters die aangeeft uit welke plaats of regio het voertuig afkomstig is. Op dat idee is deze opgave gebaseerd.
Een plaatsnaamcode kan voor een plaats worden gebruikt als hij aan de volgende voorwaarden voldoet.
De plaatsnaamcode bestaat uit maximaal drie letters.
De eerste letter van de plaatsnaamcode is de eerste letter van de plaatsnaam.
Bij een code van twee letters is de tweede letter van de code de tweede of de laatste letter van de plaatsnaam.
Bij een code van drie letters zijn twee mogelijkheden:
De tweede letter van de code is de tweede letter van de plaatsnaam, de derde letter van de code is een andere letter van de plaatsnaam.
De tweede letter van de code s een willekeurige letter van de plaatsnaam, de derde letter van de code is de laatste letter van de plaatsnaam.
Bij de plaatsnaam ARNHEM zijn de volgende codes toegestaan:
| A | AR | AM | ARN | ARH |
| ARE | ARM | ANM | AHM | AEM |
Schrijf een programma nio1 dat twee tekstbestanden inleest.
Het eerste bestand heet code.in
Op de eerste regel staat een getal C (0 < C < 10000) dat aangeeft hoeveel plaatsnaamcodes in het bestand staan aangegeven.
Op de volgende C regels staat telkens één plaatsnaamcode, een tekst van één, twee of drie hoofdletters, zonder spaties of leestekens.
Het tweede bestand heet plaats.in
Op de eerste regel staat een getal P (0 < P < 10000) dat aangeeft hoeveel plaatsnamen in het bestand staan aangegeven.
Op de volgende P regels staat telkens één plaatsnaam. Dat is een woord van minstens 2 en maximaal 15 hoofdletters, zonder spaties of leestekens erin.
Je programma schrijft een uitvoerbestand aantal.uit van C regels.
Op iedere regel staat een getal dat aangeeft hoeveel plaatsnamen uit de invoer overeenkomen met de plaatsnaamcode van de overeenkomstige regel.
Voorbeeld:
code.in |
8 |
A |
RM |
GA |
AMT |
X |
AM |
ZWE |
LEE |
plaats.in |
10 |
AMSTERDAM |
ROTTERDAM |
GRONINGEN |
LEEUWARDEN |
UTRECHT |
ZWOLLE |
APELDOORN |
AMERSFOORT |
ARNHEM |
GOUDA |
aantal.uit |
Toelichting (niet in het bestand) |
4 |
4 beginletters A |
1 |
Rotterdam |
1 |
Gouda |
2 |
Amsterdam en Amersfoort |
0 |
Geen |
3 |
Amsterdam, Amersfoort en Arnhem |
1 |
Zwolle |
1 |
Leeuwarden |
Er zijn tien testgevallen met uiteenlopende moeilijkheidsgraad. Voor elke test kun je maximaal 10 punten verdienen; iedere fout binnen een test geeft één punt aftrek. In zeven van de tien testgevallen blijft het aantal codes beperkt tot maximaal 100. We verwachten dat je programma dergelijke testgevallen binnen 2 seconden kan oplossen. De laatste drie testgevallen zijn omvangrijker; ook hier geldt een tijdlimiet van 2 seconden.