Een kaartspel bestaat uit 52 speelkaarten. Alle kaarten hebben dezelfde rugzijde, maar elke kaart heeft een unieke beeldzijde. Stel nu dat er een aantal speelkaarten van een kaartspel naast elkaar liggen, waarbij sommige kaarten met de beeldzijde en sommige met de rugzijde naar boven liggen.

kaarten

Kies nu willekeurig een reeks van één of meer opeenvolgende kaarten, waarvan zowel de eerste als de laatste kaart met de rugzijde naar boven liggen (in een reeks van één kaart zijn de eerste en de laatste kaart dezelfde), en draai alle kaarten uit die reeks om (inclusief de twee buitenste kaarten van de reeks die met de rugzijde naar boven lagen). Als je deze procedure blijft herhalen, dan zal je uiteindelijk altijd in de situatie belanden waarbij alle kaarten met de beeldzijde naar boven liggen en je dus geen kaarten meer kunt omdraaien. Dit ongeacht de keuzes die je maakt bij het omdraaien van de reeksen opeenvolgende kaarten.

Opgave

Voor deze opgave laten we je geen keuze wat betreft de reeksen kaarten, maar vragen we je telkens om de reeks te kiezen tussen de twee buitenste kaarten die met de rugzijde naar boven liggen. Als je telkens deze keuze maakt, dan wordt bovenstaande reeks kaarten in drie beurten omgevormd tot een reeks kaarten die allemaal met de beeldzijde naar boven liggen. Dit wordt geïllustreerd in onderstaande figuur, waarbij we telkens de buitenste kaarten van de reeks die moet omgedraaid worden aanduiden met een gele gloed.

kaarten omdraaien

We stellen een kaart die met de beeldzijde naar boven ligt voor met de letter B, en een kaart die met de rugzijde naar boven ligt met de letter R. Op die manier kunnen we een reeks kaarten voorstellen als een string die enkel de letters B en R bevat. De reeks kaarten die we gebruikt hebben in de inleiding kan dan voorgesteld worden door de string BRBBBRBBRB. Gevraagd wordt:

Voorbeeld

>>> omdraaien('BRBBBRBBRB')
'RBRRRBRRBR'
>>> omdraaien('RBBRBRBBBRBRRRBRRRRBB')
'BRRBRBRRRBRBBBRBBBBRR'
>>> omdraaien('BBRBRBRBRBRBRBRRBRBRBRBRRBRBRRBRB')
'RRBRBRBRBRBRBRBBRBRBRBRBBRBRBBRBR'

>>> volgende('BRBBBRBBRB')
'BBRRRBRRBB'
>>> volgende('RBBRBRBBBRBRRRBRRRRBB')
'BRRBRBRRRBRBBBRBBBBBB'
>>> volgende('BBRBRBRBRBRBRBRRBRBRBRBRRBRBRRBRB')
'BBBRBRBRBRBRBRBBRBRBRBRBBRBRBBRBB'

>>> beurten('BRBBBRBBRB')
3
>>> beurten('RBBRBRBBBRBRRRBRRRRBB')
6
>>> beurten('BBRBRBRBRBRBRBRRBRBRBRBRRBRBRRBRB')
14