Introductie

Het Gravensteen, de imposante burcht in het hart van Gent, werd in 1180 gebouwd in opdracht van Filips van de Elzas. In het jaar 1382 werd een nieuw veiligheidssysteem ingevoerd door de kasteelheer, Ridder Boudewijn van Aalst. Elke bezoeker die het kasteel wilde betreden, moest zich melden bij de poortwachter en een persoonlijke driecijferige toegangscode opgeven (een getal tussen 100 en 999).

De poortwachter verwerkte bezoekers één voor één. Wanneer een bezoeker de code 0 opgaf, betekende dit dat de poort voor die dag werd gesloten. Er was ook een geheim wachtwoord — “de leeuw van Vlaanderen” — waarmee boodschappers van de graaf toegang kregen zonder controle, maar dit wachtwoord wordt in deze oefening niet gebruikt.

De toegangscode kraken

Elke toegangscode bestaat uit drie cijfers. Op de muur naast de poort hing een perkament met de instructies:

  • H = het honderdtal (eerste cijfer)
  • T = het tiental (middelste cijfer)
  • E = de eenheid (laatste cijfer)

De toegangsscore wordt berekend als: score = H × T + E

Voorbeeld: code 473 → H = 4, T = 7, E = 3 → score = 4 × 7 + 3 = 31

De burchtkapelaan had de formule H + T + E voorgesteld, maar Ridder Boudewijn verwierp dit als te eenvoudig. Een ander voorstel was H × T × E, maar ook dit werd niet weerhouden. Enkel de formule op het perkament is geldig.

De beslissing

De poortwachter classificeerde bezoekers aan de hand van de volgende regels:

  1. Is de score deelbaar door zowel 3 als 5? → VIP-toegang
  2. Is de score een even getal? → Gewone toegang
  3. Is de score oneven EN groter dan 20? → Geweigerd - verdacht
  4. Alle andere gevallen → Geweigerd - te zwak

Er deden geruchten de ronde dat codes met een eenheidscijfer van 0 automatisch VIP-toegang gaven, maar dit is onwaar. Enkel bovenstaande regels gelden.

De dagtaak van de poortwachter

De poortwachter bleef codes verwerken totdat ofwel een bezoeker de code 0 opgaf (de poort sluit), ofwel het kasteel zijn maximale capaciteit van 50 toegelaten gasten had bereikt. Toegelaten gasten zijn VIP-gasten en gewone gasten samen. De stadsbouwmeester had de capaciteit oorspronkelijk op 64 personen berekend, maar na een incident werd dit teruggebracht tot 50. Het getal 64 speelt dus geen rol.

Aan het einde van zijn shift schreef de poortwachter zijn dagrapport:

VIP-gasten: ...
Gewone gasten: ...
Geweigerd: ...

Gevolgd door één van deze twee slotregels:

Het stadsbestuur had gevraagd om het totaal aantal bezoekers (toegelaten + geweigerd) te noteren, maar de poortwachter vond dit overbodig. Je programma hoeft het totaal dus niet af te drukken.

Voorbeelden

Voorbeeld 1

Invoer:

256
781
333
150
0

Uitvoer:

VIP-gasten: 0
Gewone gasten: 2
Geweigerd: 2
De poort is gesloten.

Voorbeeld 2

Invoer:

555
781
919
0

Uitvoer:

VIP-gasten: 1
Gewone gasten: 1
Geweigerd: 1
De poort is gesloten.

Voorbeeld 3

Invoer:

555
0

Uitvoer:

VIP-gasten: 1
Gewone gasten: 0
Geweigerd: 0
De poort is gesloten.