Sjaars Kampioenschap Programmeren Vrijdag 18 maart 2011

Vergelijkbare documenten
woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 3

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Werkbladen. Module 3: Geheimtaal. Internet. De Baas Op. Module 3, Versie 1.0

Een overzicht van de meest gebruikte tochttechnieken

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

rekentrainer jaargroep 6 Vul de maatbekers. Kleur. Zwijsen naam:

Uitwerking tentamen Analyse van Algoritmen, 29 januari

rekentrainer jaargroep 6 Vul de maatbekers. Kleur. Zwijsen naam:

De eerste ronde Nederlandse Informatica Olympiade

Rekentijger - Groep 7 Tips bij werkboekje A

Scratch les 3: Quiz! Je eigen spelshow

Opgaven. Delfts Kampioenschap Programmeren voor het

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00

Auteur: Mirjam Wind, docent en coördinator NT2, Educatie Video s: Gabe Dijkstra en Rick Biemolt, studenten Alfa-college, MultiMedia en Design

Introductie. Een magazijn van binnen

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

woensdag 2/3/4² - Diepenbeek OPGAVEN CAT 4

Tentamen Programmeren in C (EE1400)

Hoofdstuk 7: Werken met arrays

Elke gelijkenis met bestaande gebeurtenissen en/of personen berust op louter toeval.

Stroomschema s maken in Word

Inleiding Programmeren 2

Uitleg. Welkom bij de Beverwedstrijd Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Elke groep van 3 leerlingen heeft een 9 setje speelkaarten nodig: 2 t/m 10, bijvoorbeeld alle schoppen, of alle harten kaarten.

DomJudge-Practicum. Open Dag UU

Het minimale aantal sleutels op niveau h is derhalve

WISKUNDE-ESTAFETTE Minuten voor 20 opgaven. Het totaal aantal te behalen punten is 500

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

Mooie priem. Opgave. Invoer. Uitvoer

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen

Scratch Rekenen & programmeren

Kleuren met getallen Afbeeldingen weergeven

Het Eindfeest. Algoritmiek Opgave 6, Voorjaar

Lesbrief Code kraken / maken

Kennismaking met programmeren

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Inleiding Programmeren 2

Programmeermethoden NA. Week 5: Functies (vervolg)

Waarschijnlijk wel, want er zit niet veel informatie in de klinkers. Deze activiteit laat een manier zien om de hoeveelheid informatie te meten.

Pascal uitgediept Data structuren

Hoe? RIVER CROSSING. Taal 1. Waar? Tijd? Extra? SPEL DENK

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Gevaarlijke liefde. Weet jij wie die jongen is? Zit hij ook bij ons op school? Mooi hè, Kim? Maar wel duur! Ik geloof dat hij Ramon heet!

De Leidsche Flesch Studievereniging voor Natuurkunde, Sterrenkunde, Wiskunde en Informatica sinds DLF Pointerworkshop

Noordhoff Uitgevers bv

spelregels SPELREGELS spelen en leren, kijk eens wat ik al kan!

Uitwerking tentamen Algoritmiek 9 juni :00 17:00

Samenvatting. Context. Doelstellingen. Vaardigheden computationeel denken. Katholiek onderwijs. Gemeenschapsonderwijs

Informatica: C# WPO 12

Pooltocht 2015 Routetechnieken

DATABASEBEHEER IN EXCEL

PSSST! GEHEIMPJE! Anne zet het bericht eerst om. Dit noemt men versleutelen. Ze stuurt een briefje met het versleuteld bericht naar Brent:

SMART-finale Ronde 1: 5-keuzevragen

Tussendoelen rekenen-wiskunde voor eind groep 2

Activiteit 9. Modderstad Minimaal Opspannende Bomen. Samenvatting. Kerndoelen. Leeftijd. Vaardigheden. Materialen

3. Structuren in de taal

Oefeningen Jaarproject I

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

Hoe kan ABCDate mij helpen bij het ontmoeten van nieuwe mensen?

Scratch les 1 Rekenen

Vul dat in het Bekend-Benieuwd-Bewaard-schema in bij de kolommen Bekend en Benieuwd. Let op: De kolom Bewaard vul je pas in bij vraag 4!

De jury beslist of een inzending geldig is. Over de uitslag kan niet worden gecorrespondeerd. WCPN Nederlands Kampioenschap 2014

Simon de schildpad J van Weert 1

Dit instructieboek is een kopie van het echte NK. Alleen de puzzels zijn verwijderd.

Stroomschema s maken op papier

Wat als je een heleboel informatie wilt opslaan? Bijvoorbeeld alle namen van iedereen die bij jouw dojo's aanwezig is? Hier gebruik je een lijst voor:

Examen Datastructuren en Algoritmen II

Weet wat je kan. Een goede toekomst

Vierde college complexiteit. 14 februari Beslissingsbomen

OPGAVEN

Een boekje met wiskundige vragen en opdrachten voor Havo 3

Laura s geheim. Auteur: Marieke Otten Illustraties: Marian Latour. Boekverslag van:... Klas:...

Small Basic Programmeren Text Console 2

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Informatica: C# WPO 13

Ga naar en remix het spel.

1 Monumenten. 32 x tips bij Breinkrakers. Tips en uitleg naar: 32 Breinkrakers 2003 SCHUBI Lernmedien AG, Schaffhausen service@schubi.nl

Programmeermethoden NA. Week 6: Lijsten

DE INTERACTIEVE SHELL


Projecten in scratch!

Samen met Jezus op weg

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

OPDRACH TE N B I J TH E M A 4

Opgaven NKP Inhoudsopgave. 6 oktober 2001 TU Delft. A De spin en zijn prooi 1. B Palindromië 3. C Boeken weet je nog? 5. D Schrikkeljaren 7

MEMORY WOORDEN 1.1. TaalCompleet A1 Memory Woorden 1 1

Alles onder de knie? 1 Herhalen. Intro. Met de docent. 1 Werk samen. Lees het begin van de gesprekjes. Maak samen de gesprekjes af.

Programmeermethoden NA

2003 De Wageningse Methode. Foto s De Wageningse Methode. Druk/Verkoop Tamminga bv, Postbus 176, 6920 AD Duiven

Hoofdstuk!7!Kortste!paden!

Examen Datastructuren en Algoritmen II

Python. Informatica. Renske Smetsers

Maak je eigen cd. WISACTUEEL opdracht december 2010

7&8. Sportles groep 7 & 8 Lekker in je vel? Jouw veiligheidsplan. Over deze les. Wat heeft u nodig?

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

Een retour Rotterdam

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Wiskunde - MBO Niveau 4. Eerste- en tweedegraads verbanden

Transcriptie:

Sjaars Kampioenschap Programmeren Vrijdag 18 maart 211

A Laura Croft Laura woont sinds kort in New York. Morgen wil ze met een paar vriendinnen gaan winkelen bij de nieuwe five-finger discount shop, maar ze weet de weg niet. Een van haar vriendinnen heeft daarom een kaartje getekend van de buurt en daarin aangegeven waar Laura woont en waar de winkel is. Helaas was er geen tijd meer om de beste route in te tekenen en moet Laura dat zelf maar uit gaan vinden. Gelukkig voor Laura heeft haar vriendin de kaart getekend op ruitjes papier en klopt de verhouding ook aardig. Alleen is ze zelf niet goed in de korste route vinden en vraagt ze jou of jij de kortste route kunt geven. Daartoe stuurt ze jou een digitale versie van de kaart met voor elk ruitje een teken om aan te geven of er een weg loopt of niet. Nu weet ze dat jij niet veel tijd hebt en vraagt daarom niet om de route zelf, maar om de lengte van deze route. Scheelt jou weer werk en Laura vindt het wel leuk om te puzzelen. Aan jou nu dus de taak om de lengte van de kortste route naar Laura te sturen. Houdt er echter wel rekening mee dat Laura niet schuin kan lopen. Op de eerste regel één geheel getal n ( < n 1), het aantal testgevallen. Daarna voor elk testgeval: Eén regel met twee positieve getallen gescheiden door een spatie, h en w (1 < h, w 8), de hoogte en breedte het kaartje. Dan h regels met op elke regel w karakters, die de kaart beschrijven. Elk karakter is één van de volgende:. (punt), een weg; # (hekje), een gebouw of ander stuk waar je niet kunt lopen; L (hoofdletter L), de plek waar Laura woont; 5 (vijf), de five-finger discount store. In iedere kaart zal er precies één L en één 5 zijn, dit zijn de begin- en eindpositie van Laura. Voor elk testgeval één regel met daarop een positief getal: het minimum aantal hokjes op de kaart waar Laura over heen moet lopen om bij de winkel te komen, oftewel de lengte van de kortste route. 2

Voorbeeld 2 5 5 5 11 ##### #..5. #.### #.#.# #L..# 9 8 ######## #.L...## ###.####...#..# #..##.## ##..###. #... #.##..## #.5..#.. 3

B Het Land van CH In het land van CH is Christiaan koning. De koning van CH heeft een groot en machtig leger. Om het leger goed te ordenen heeft koning Christiaan een makkelijke methode gebruikt om de rangen in te delen. Deze methode is zo opgesteld dat iedereen maximaal 2 mensen onder zijn hoede heeft. Koning Christiaan is in opstand gekomen tegen het nogal vervelende gedrag van buurland ETV 1. Omdat dit buurland niet zo n geordend en sterk leger heeft als het Land van CH, ziet koning Christiaan geen noodzaak om hier meer naar toe te sturen dan alleen de laagste rangen van zijn eigen leger. Koning Christiaan heeft een lijst met alle mensen in het leger, maar uit deze lijst wordt hij zelf niet veel wijzer, dus schakelt hij jou in. Hij vraagt jou een programma te maken waarin naar voren komt wie de zwaksten zijn in zijn leger. De zwaksten zijn de personen met de laagst mogelijke rang binnen het leger. Hoe meer superieuren iemand heeft, hoe lager zijn rang is. Op de eerste regel één geheel getal n ( < n 1), het aantal testgevallen. Daarna voor elk testgeval: Eén regel met één geheel getal m ( m 1), het aantal persoonsuperieur paren dat in het leger van koning Christaan zit. Daarna voor elk paar in het leger: Een regel met daarop de naam van de leidinggevende persoon; Een regel met daarop de naam van de van de persoon waar leiding over gegeven wordt. Namen van personen hebben een lengte van maximaal 1 tekens. De eerst ingelezen persoon onder een leidinggevende is de sterkste van de twee personen (mits er twee zijn) onder deze leidinggevende. De personen onder een leidinggevende zijn sterker dan de ondergeschikten onder een zwakkere leidinggevende. Houdt er hierbij ook rekening mee dat Christiaan koning is en dus de hoogste rang heeft. Hij wordt in de lijst met personen uitsluitend als leidinggevende genoemd. De namen bevatten geen spaties of andere witruimten. Voor elk testgeval een lijst van alle personen (van sterk naar zwak) die de laagste rang bekleden, waarbij elk persoon op een nieuwe regel staat. 1 Enige overeenkomsten met de werkelijkheid berusten op louter toeval. 4

Voorbeeld 2 Paul 2 Christiaan Erik Paul Jan Christiaan Klaas 5 Christiaan Christiaan Piet Erik Piet Klaas Jan Christiaan Paul Figuur 1: Eerste boom uit voorbeeld Christiaan Piet Erik Jan Klaas Figuur 2: Tweede boom uit voorbeeld 5

C Gecodeerde berichten Koning Christiaan uit de vorige opgave wil ook kunnen communiceren met de mannen die hij het veld in stuurt. Hiervoor wordt een protocol ontworpen dat geheime boodschappen kan oversturen. Om het voor de vijand moeilijker te maken deze boodschappen te ontcijferen worden er binaire strings met een variabele lengte gebruikt. Ook worden er valse strings verzonden. Zo wordt het wel erg lastig om deze code te ontcijferen. Nu wordt er nog hard gewerkt aan het precieze protocol, maar de koning vraagt jou om alvast het eerste deel te gaan programmeren. Voor het opslaan van de strings wil de koning een trie 2 gebruiken. Een trie is namelijk een boom die zeer geschikt is om strings in op te slaan. De wortel van de boom bevat de lege string. Vervolgens wordt een string van links naar rechts uitgelezen waarbij elk teken een knoop is onder het vorige teken. Zo kun je een string uitlezen door de trie van boven naar beneden uit te lezen. Om ruimte te besparen maak je alleen knopen aan als er een geldige string in waar deze uit voort komt. Alle bladeren (eindknopen) duiden daardoor ook het eind van een geldige string aan. Jouw taak is nu om uit te rekenen hoeveel knopen er in een trie komen gegeven een set strings. Op de eerste regel één geheel getal n ( < n 1), het aantal testgevallen. Daarna voor elk testgeval: Eén regel met één geheel getal m ( m 1), het aantal geldige strings. Daarna m regels met daarop een geldige string. Voor elk testgeval één geheel getal; het minimaal aantal nodes in de boom. We beginnen met een lege string, deze telt ook mee. 2 Dit woord komt van retrieval; het opzoeken van strings gaat namelijk heel snel. 6

Voorbeeld 2 11 6 13 1 1 11 1 11 1 7 1 11 1 1 11 111 111 ε 1 * * Figuur 3: Eerste boom uit voorbeeld, de eindes van een geldige string zijn aangegeven met een sterretje ε 1 * 1 * * Figuur 4: Tweede boom uit voorbeeld, de eindes van een geldige string zijn aangegeven met een sterretje 7

D Bescherm een medestudent In het studentenleven kom je het regelmatig tegen, een medestudent heeft dermate veel gedronken dat hij niet meer normaal kan lopen. Soms gebeurt het zelfs dat een student de weg totaal kwijt is en er een grote kans is dat deze de gracht in loopt of naar huis probeert te lopen, maar uiteindelijk van de A2 geplukt moet worden bij knooppunt Everdingen. Afgelopen nacht was het weer zover. Bij een studentenvereniging waar je lekker zit te drinken is een persoon zo ver heen dat hij de deur uitgezet wordt om geen last te hebben van hem. Omdat deze persoon ook niet naar huis kan lopen en niemand op hem wil letten wordt er besloten deze persoon met een touw vast te binden aan een lantaarnpaal. Het touw is kort genoeg om ervoor te zorgen dat de student niet de gracht in kan lopen. Na een paar uurtjes doordrinken besluit je maar naar huis te gaan en kom je er achter dat de bezopen student nog vast zit aan de lantaarnpaal, maar ook dat deze meermaals rond de paal is gelopen. Omdat je ook genoeg op hebt kan het je niks boeien en ga je lekker naar huis. Nu je er aan terug denkt ben je toch benieuwd hoeveel windingen het touw om de paal had en vraag je de bewakingsbeelden op. Dit zijn geen vloeiende beelden, maar in schokken kun je de bewegingen zien. Je noteert de cordinaten van de student ten opzichte van lantaarnpaal bij elk frame. Nu alleen nog een programma schrijven wat uitrekent hoeveel gehele windingen er uiteindelijk rond de paal zitten. Je kunt er van uit gaan dat de student altijd de korste route heeft genomen naar het volgende punt. Als het pad door de paal loopt liep hij tegen de klok in. De paal staat op punt (,) en de waarden van de coördinaten (x,y) die je krijgt liggen tussen 1 9 en +1 9. Op de eerste regel één geheel getal n ( < n 1), het aantal testgevallen. Daarna voor elk testgeval: Eén regel met één geheel getal m ( m 1), het aantal beeldframes dat je hebt. Daarna m regels met twee gehele getallen x en y gescheiden door een spatie ( 1 9 x, y 1 9), de coördinaten van de student. Voor elk testgeval een regel met het aantal gehele windingen van het touw rond de lantaarnpaal. 8

Voorbeeld 2 1 6 1 4 3-1 -4-3 -1-4 -1 2 3 3 5 1 1-3 2 2-4 2-4 -1 Figuur 5: De route van het eerste voorbeeld Figuur 6: De route van het tweede voorbeeld 9

E Sorteer de kogels In een klein land niet zo ver hier vandaan is er geen regering. Omdat onze regering dit ziet als een buitenkans om ons land te vergroten met een extra provincie of twee, willen zij het leger op orde brengen. Een van de belangrijke dingen die het leger moet doen is alle kogels op orde brengen. Onze regering wil dat elke subgroep van het leger een overzicht geeft van alle kogels die ze hebben gesorteerd op grootte (van klein naar groot). Het leger hanteert een simpele sorteermethode om fouten te voorkomen. De kogels worden stuk voor stuk gepakt en op een gesorteerde plek gelegd. De eerste kogel is nergens mee te vergelijken en wordt gewoon neergelegd. Elke volgende kogel wordt vergeleken met de al op tafel liggende kogels. Je begint te vergelijken met de kleinste, als de kogel die je hebt kleiner is, gaat deze er voor, is de kogel groter vegelijk je hem met de volgende kogel. Mocht de kogel groter zijn dan de grootste die er al ligt, dan leg je hem achteraan. Aan jou nu de taak om deze sorteermethode te simuleren 3. Op de eerste regel 1 geheel getal n ( < n 1), het aantal testgevallen. Daarna voor elk testgeval: Eén regel met één geheel getal m ( < m 1), het aantal kogels dat gesorteerd moet worden. Daarna een regel met m integers k (1 k 1), de lengte van kogels. Voor elk testgeval een regel met alle kogels (op volgorde van lengte.) Voorbeeld 3 1 3 4 7 13 5 54 54 54 54 54 1 7 4 3 13 1 1 2 2 3 4 5 7 8 12 5 54 54 54 54 54 1 1 3 5 7 8 1 2 12 4 2 3 Je moet de gevraagde methode gebruiken. Gebruik van andere sorteeralgoritmen en gebruik van standaard libraries zullen afgekeurd worden. Een fout algoritme wordt mogelijk door de auto-judge goedgekeurd, maar zal later handmatig afgekeurd worden! 1