Lucka 23

Lösning presenteras imorgon kl 08:00

Man kan tänka sig att tomtenissarna har någon slags magisk maskin för att slå in alla julklappar som ska delas ut, men sanningen är att alla julklappar slås in för hand.

Med bara en dag kvar till julafton är det dags att stoppa alla paketen i tomtesäcken.

Tomtemor upptäcker att någon har varit busig vid paketinslagningen. Ett av paketen är inslaget med ett genomskinligt (transparent) papper. Detta betyder att mottagaren kommer se vad paketet innehåller, redan innan det är öppnat!

Tomtemor vill hitta den skyldige nissen och plockar därför fram de kontrollböcker som nissarna använder när de slår in klapparna.

Nissarna arbetar i lag för att slå in paketen. Varje lag består av 2 nissar. Det finns 100 lag, med totalt 200 nissar. Lagen är numrerade 0 till 99.

Nissarna utför två olika aktiviteter vid paketinslagningen. Antingen så slår de in paket (betecknas med “P”), eller så inspekterar de paket (betecknas med “I”).

Varje lag har en station där de arbetar. I varje station kan endast en nisse arbeta åt gången. Det innebär att om en nisse arbetar på förmiddagen, arbetar en annan på eftermiddagen.

Den nisse som kommer till stationen på förmiddagen väljer om den vill slå in paket (“P”) eller inspektera paket (“I”). Nissen som kommer till stationen på eftermiddagen måste göra motsatt till vad förmiddagsnissen valde. Om nissen på förmiddagen slog in paket, så kommer nissen som arbetar på eftermiddagen att inspektera paket, och vice versa.

Ett lag av nissar arbetar alltid hela dagar (nissen på eftermiddagen kan t.ex. inte ta ledigt om den andra nissen redan arbetat på förmiddagen).

För att enkelt hålla koll på vem som gjort vad så för alla lag en logg i en kontrollbok. De betecknar där vad de har gjort (“I” eller “P”). T.ex.:

IP – Nissarna i ett lag har arbetat en dag. Under förmiddagen inspekterades paket, och under eftermiddagen slogs paket in.

PIPI – Nissarna i ett lag har arbetat två dagar. Under första dagens förmiddag slogs paket in först, och sedan inspekterades. Likaså under andra dagen.

PIIPPI – Nissarna har arbetat tre dagar. Under första dagens förmiddag slogs paket in först, och sedan inspekterades. Under andra dagen inspekterades paket på förmiddagen, och sedan slogs paket in. Under sista och tredje dagen slogs paket in först och sedan inspekterades.

 

Ett exempel på en felaktig logg är t.ex. följande:

PP – Nissarna har arbetat en dag. Både under för- och eftermiddag har paket slagits in (alltså felaktig).

PIPPIP – Nissarna har arbetat tre dagar. Men under den andra dagen så har paket slagits in både på för- och eftermiddag (alltså felaktig).

PIP – Nissarna har arbetat en dag. Under den andra dagen har bara en nisse jobbat (alltså felaktig).

Kontrollboken består av en lista av loggar (t.ex. PIIPPIIPPIPIIPIP). Indexet för varje element i listan är samma som numret på varje lag (0-99).

Kontrollboken finns som en färdig lista i Python, eller som en txt-fil:
Som lista i Python
Som txt-fil

Tomtemor misstänker att vi kan hitta den busige nissen som slog in ett paket med genomskinligt papper om vi kan hitta ett lag som har en felaktig logg. Finns det någon felaktig logg i kontrollboken, och i så fall vilket lag har fyllt i kontrollboken felaktigt?

Unga Programmerare håller kurser i programmering för barn och ungdomar. Unga Programmerare startades av studenter från Chalmers Tekniska Högskola.

Följ oss

Nyhetsbrev