Programmeringsolympiaden 2017

Relevanta dokument
Programmeringsolympiaden 2018

Programmeringsolympiaden 2016

Programmeringsolympiaden 2009 Kvalificering

Programmeringsolympiaden 2015

Programmeringsolympiaden 2010 Kvalificering

Programmeringsolympiaden 2014

Programmeringsolympiaden 2011 Kvalificering

Programmeringsolympiaden 2012 Kvalificering

Programmeringsolympiaden 2013

Programmeringsolympiaden 2008 Kvalificering

Armin Halilovic: EXTRA ÖVNINGAR

KOMBINATORIK OCH BINOMIALSATSEN

UPPGIFT 1 LAMELLER. Minsta antalet hål: 1. Första lamellen? Andra lamellen? Minsta antalet hål: 3

Programmeringsolympiadens final 2012 TÄVLINGSREGLER

UPPGIFT 1 TVETYDIGA DATUM

Programmeringsolympiadens final 2009

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

UPPGIFT 1 WILL ROGERS FENOMEN

Tentaupplägg denna gång

Problem: FIL File Paths

Tentamen TEN1 HI

Kombinatorik. Kapitel 2. Allmänt kan sägas att inom kombinatoriken sysslar man huvudsakligen med beräkningar av

kl Tentaupplägg

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Programmeringsolympiadens final 2011 TÄVLINGSREGLER

UPPGIFT 1 V75 FIGUR 1.

ENKEL Programmering 3

UPPGIFT 2 KVADRATVANDRING

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

TENTAMEN. Ten2, Matematik 1 Kurskod HF1903 Skrivtid 13:15-17:15 Fredagen 25 oktober 2013 Tentamen består av 4 sidor

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

TENTAMEN. Programmering Grundkurs (HI1900) Skrivtid 13:15-18:15. Tisdagen 26 april Tentamen består av 8 sidor

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

UPPGIFT 1 EURO. Utdata: Två rader, som för indata ovan, ser ut som följer: Före resan: bank 1 Efter resan: bank 3

UPPGIFT 1 FORTSÄTT TALFÖLJDEN

Kängurun Matematikens hopp

kl Tentaupplägg. TIPS 4: Du kan kompilera din kod med följande kommandon g++11, w++11 (för mer varningar)

HI1024 Programmering, grundkurs TEN

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

kl Tentaupplägg

Välkommen till Kängurutävlingen Matematikens hopp 2019 Cadet för elever i åk 8, 9 och för elever som läser kurs 1a, 1b, eller 1c

diverse egenskapspaletter

Handbok Svarta lådan. Nicolas Roffet Robert Cimrman Philip Rodrigues Lauri Watts Översättare: Stefan Asserhäll

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Kängurutävlingen Matematikens hopp

Introduktion till programmering och Python Grundkurs i programmering med Python

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215/TIG091

L-Advantage Solutions AB. WinMore Systems Hippo PC & MAC Start

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

läromedel JVM-mani mani läromedel

HI1024 Programmering, grundkurs TEN

Programmering. Scratch - grundövningar

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

A. Datorn från grunden

Tentamen i Grundläggande programmering STS, åk 1 fredag

TENTAMEN I INTRODUKTION TILL MEDIEPRODUKTION, 5p

NpMa3c vt Kravgränser

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Extramaterial till Matematik Y

Får jag be om ordet!

kl Tentaupplägg

Språkstudion på Hedbergska En manual

Grattis till ett bra köp!

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter

Nonogram

Programmering. Den första datorn hette ENIAC.

Extramaterial till Matematik X

Matteklubben Vårterminen 2015, lektion 6

LÄRARHANDLEDNING. Eleverna kan två och två eller i större grupper på ett lekfullt sätt träna följande: Talinnehåll Addition Subtraktion Multiplikation

STYRANDE SATSER. 1) Skriv ett program som räknar ut hur många år du har till pensionen. Vi räknar här med att man pensioneras det år man fyller 65 år.

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

TDIU Regler

kl Tentaupplägg

Kvalificeringstävling den 30 september 2008

UPPGIFT 1 PRESIDENTVALET

PYTHAGORAS Q U E S T

Något om kombinatorik

Bilder Innehåll: Inledning Minneskort Ansluta kamera eller minneskort Föra över bilder, ett sätt Föra över bilder, ett a nnat sätt

Programmeringsolympiadens final 2010

Uppgift 1. OPTIMERA RESURSUTNYTTJANDET.

Uppgift 1 ( Betyg 3 uppgift )

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

En typisk medianmorot

Kvalificeringstävling den 28 september 2010

kl Tentaupplägg

Följande frågor handlar om digitala medier och digital utrustning så som stationära och bärbara datorer, smarttelefoner, surfplattor, mobiltelefoner

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Introduktion till DigiExam-klienten/appen

12 steg för att göra en bok med Word

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

KOMBINATORIK. Exempel 1. Motivera att det bland 11 naturliga tal finns minst två som slutar på samma

! "# # # $ # " % & # # '(") " " )## (")"#*+*(, ( - " ' # (") #. % % /

TDIU Regler

Transkript:

Programmeringsolympiaden 2017 TÄVLINGSREGLER FÖR SKOLKVALET Tävlingen äger rum på av skolan bestämt datum under fyra timmar effektiv tid. Eleven ska i förväg komma överens med läraren om att använda egen dator eller en som skolan tillhandahåller. I vilket fall som helst måste eleven befinna sig i av läraren bestämd lokal på skolan. Tävlingen består av fem uppgifter som vardera ska lösas genom ett datorprogram i valfritt programmeringsspråk. Dina lösningar kommer att testköras med förpreparerade indata. Varje uppgift testas normalt med 5 testfall, som vardera ger 1 poäng om ditt program skriver ut korrekt svar inom en exekveringstidsgräns av 5 sekunder. På vissa uppgifter kan det krävas rätt svar på flera testfall för att få poäng. Det är ofta olika begränsningar på de olika testfallen, t.ex. storleken på indata eller andra inskränkningar. Detta anges i uppgiften. Observera att det kan vara helt olika svårighetsgrad på en uppgift beroende på dessa skillnader. Det kan därför vara lättare att få delpoäng på en uppgift som verkar svår än att få full poäng på en uppgift som verkar lättare. Informationen om delpoäng är därför extremt viktig för att planera sin tävling. Ingen test av indata behöver göras, den följer specifikationerna i uppgiften. Rättningen utförs på samma eller likvärdig dator. Ändringar i källkoden tillåts ej efter tävlingen. Om programmet inte kan kompileras ges 0 p. på uppgiften. Om något av följande inträffar ger det testfallet 0 poäng, men programmet fortsätter testas med övriga testfall. Exekveringstiden överstiger 5 sekunder Exekveringsfel (run time error) Fel svar Deltagandet är individuellt vilket bland annat innebär att inget utbyte av idéer eller filer får ske under tävlingen. Hjälpmedel: Valfritt skriftligt material, material som finns installerat på datorn samt material som finns tillgängligt på internet. Det är inte tillåtet att aktivt kommunicera på internet (t.ex. chatta eller ställa frågor till ett forum) utan endast att söka efter information. Räknedosa är tillåten. Tävlingsbidraget ska lämnas in i form av källkodsfiler som läggs på utdelat minne eller i en av läraren angiven hårddiskkatalog. Filerna ska döpas till uppg1...uppg5 med passande filtillägg. Ingen hänsyn tas till andra filer. Var noga med att lämna in den korrekta versionen av ditt program. De högst placerade i kvalet går vidare till finalen där landslagsplatser till tävlingar i Norge och Iran står på spel. Lycka till! 1

UPPGIFT 1 MINIGOLF En minigolfanläggning har N stycken banor, där 2 N 10. Varannan bana (udda nummer) är så kallad par 2 och varannan (jämna nummer) är par 3, där par är det rekommenderade antalet slag en golfspelare ska klara en viss bana på. Det finns också en regel som säger att om man slår fler än 7 slag på en bana räknas det ändå bara som 7 slag vid sammanräkningen. Skriv ett program som, givet antalet slag du använt på varje bana (ett tal mellan 1 och 10), beräknar det sammanlagda resultatet över/under par. Antal banor? 3 Bana 1? 5 Bana 2? 3 Bana 3? 1 Resultat: 2 Bana 1 2 3 Totalt Par 2 3 2 7 Slag 5 3 1 9 +/- +3 0-1 +2 Antal banor? 6 Bana 1? 1 Bana 2? 9 Bana 3? 1 Bana 4? 1 Bana 5? 1 Bana 6? 1 Bana 1 2 3 4 5 6 Totalt Par 2 3 2 3 2 3 15 Slag 1 7 1 1 1 1 12 +/- -1 +4-1 -2-1 -2-3 (observera att de 9 slagen på andra banan bokförs som 7) Resultat: -3 2

UPPGIFT 2 SIDNUMRERING I en viss bok medn sidor vill förlaget spara pengar genom att enbart trycka sidnummer på höger sida, d.v.s. de udda talen. Skriv ett program som räknar ut hur många siffror som går åt av varje sort (0 9). Antal sidor? 23 Antal siffror av varje sort: 0 8 2 3 0 2 0 2 0 2 Förklaring: Sidnumren som skrivs är 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 och 23. Alltså behövs det inga nollor, 8 ettor, 2 tvåor, 3 treor, inga fyror, 2 femmor, inga sexor, 2 sjuor, inga åttor och 2 nior. Antal sidor? 306 Antal siffror av varje sort: 13 96 65 49 15 46 15 45 15 45 Antal sidor? 82056 Antal siffror av varje sort: 12178 25911 17233 25411 17205 25409 17200 25405 13228 20405 För testfall värda 3 poäng gäller att 1 N 100000 För testfall värda 2 poäng gäller att 10 9 N 10 12 3

UPPGIFT 3 ARMSTÖD Petitess-organisationen (PO) har möte och de N medlemmarna sitter på stolar i en ring, vända inåt. Mellan varje par av stolar finns ett armstöd som högst en av personerna kan använda. Varje person har en preferens i form av vilken eller vilka armar hen vill placera på armstöden: V: vänster arm H: höger arm A: antingen vänster eller höger arm B: båda armarna I: ingen arm Skriv ett program som beräknar hur många av personerna som maximalt kan bli nöjda. Programmet ska fråga efter antal personer i ringen (N) och personernas preferenser, som ges i den ordning personerna sitter, moturs i ringen, i form av en sträng bestående av N bokstäver, vardera V, H, A, B eller I. Programmet ska skriva ut det maximala antalet personer som kan få sin preferens uppfylld. Antal personer? 7 Preferenser? BAVIABH A I Antal nojda: 6 B V Förklaring: Figuren till höger visar lösningen. De tjocka linjerna markerar armar som personer lagt på armstöden. Den grå färgen visar vilka som fått sina preferenser uppfyllda. Pilen markerar var den givna indatasträngen börjar och slutar. H B A Antal personer? 5 Preferenser? IHAVB Antal nojda: 4 Antal personer? 15 Preferenser? BHVBABHVIBHABVV Antal nojda: 11 För testfall värda 1 poäng gäller att N = 5 och första bokstaven är I. 2 poäng 6 N 15 och ingen restriktion på bokstäver. 1 poäng 25 N 30 och första bokstaven är I. 1 poäng 25 N 30 och ingen restriktion på bokstäver. 4

UPPGIFT 4 BILDA ORD Fatimeh studerar sitt hemspråk som använder det arabiska alfabetet. Just nu sitter hon med en övning där hon ska svara på hur många sätt hon kan bilda ett ord med de givna bokstäverna i uppgiften. Om det hade varit på svenska kunde övningen ha se ut så här: r M e a Eftersom fyra bokstäver är givna vet Fatimeh att hon måste testa 4 3 2 1 = 24 permutationer. Men eftersom bokstaven M är stor så vet vi att den måste placeras i ordets början. Med det villkoret kan bara6ord bildas, exempelvismera, men interame. I det arabiska alfabetet har man inte stora och små bokstäver på samma sätt, men man har andra regler om var i ordet bokstaven kan förekomma, även i relation till andra bokstäver. I denna uppgift antar vi att det finns två typer av restriktioner: Antingen måste en bokstav komma precis före någon annan bokstav, eller så kan en bokstav bara stå på vissa positioner. Exempel på dessa regler och den notation vi använder finns i följande tabell: Regel Notation Bokstav B måste stå på på plats 1 eller plats 4 B@01,04 Bokstav D måste direkt föregå C eller B D:CB Skriv ett program som beräknar på hur många sätt som N olika bokstäver (för enkelhets skull kallade A, B, C,... etc.) kan placeras ut, givet ett antal regler av dessa två typer. En viss bokstav kan inte stå först i mer än en regel av vardera typen. Svaret kommer alltid att understiga 10 miljoner. Antal bokstäver? 4 Antal regler? 2 Regel 1? B@01,04 Regel 2? D:CB Antal ord: 6 (fler körningsexempel finns på nästa sida) Förklaring: De ord som kan bildas är ACDB, ADCB, BADC, CADB, DCAB och BDCA. För testfall värda 3 poäng gäller att 2 N 9. För full poäng så ska ditt program klara 2 N 15. Antalet regler kommer aldrig överstiga N. För stora N kommer restriktionerna vara ungefär jämnt utspridda bland bokstäverna. 5

Antal bokstäver? 3 Antal regler? 2 Regel 1? B@02 Regel 2? A:BC Antal ord: 1 Antal bokstäver? 3 Antal regler? 2 Regel 1? B@02 Regel 2? A:C Antal ord: 0 Körningsexempel 4 Antal bokstäver? 8 Antal regler? 4 Regel 1? E@02,08,05 Regel 2? A:CEF Regel 3? A@05,02,03 Regel 4? C:ABCDH Antal ord: 918 6

UPPGIFT 5 DATORKÖP Ett företag har precis köpt in nya datorer:xstationära ochy bärbara. En stationär dator kostar a dollar och en bärbar b dollar, där 1 a,b 1000. Företaget har n avdelningar och de anses olika viktiga gentemot varandra. VDn har bestämt att datorerna ska distribueras enligt följande enkla regel: En viktigare avdelning ska få datorer till ett värde som är minst lika stort som en mindre viktig avdelning. Klara får i uppdrag att göra fördelningen. Trots att Klara är jätteduktig jobbar hon på den minst viktiga avdelningen. För att bli populär bland avdelningskollegorna vill hon förstås ordna datorer till högsta möjliga värde till sin avdelning. Hon har bett dig om hjälp! Skriv ett program som, givet variablerna x, a, y, b och n beräknar det högsta möjliga värdet på datorerna som Klaras avdelning kan få? Antal stationara? 3 Pris stationara? 300 Antal barbara? 2 Pris barbara? 500 Antal avdelningar? 2 Maximalt varde: 900 Förklaring: Här låter Klara den viktiga avdelningen få de 2 bärbara datorerna (värde 1000 dollar) och hennes egen avdelning få de 3 stationära datorerna (värde 900 dollar). Antal stationara? 3 Pris stationara? 150 Antal barbara? 5 Pris barbara? 110 Antal avdelningar? 3 Maximalt varde: 300 Antal stationara? 58 Pris stationara? 364 Antal barbara? 37 Pris barbara? 255 Antal avdelningar? 13 Maximalt varde: 2330 För testfall värda 1 poäng gäller att n = 2 och 0 x, y 100. 1 poäng 3 n 6 och 0 x,y 10. 2 poäng 10 n 100 och 0 x,y 100. 1 poäng 800 n 1000 och 0 x,y 1000. 7