International Olympiad in Informatics 2013



Samankaltaiset tiedostot
Brisbanen ovat vallanneet mutaattivompatit, ja tehtäväsi on johdattaa ihmiset turvaan.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

Tehtävä: FIL Tiedostopolut

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Datatähti 2019 loppu

Ohjelmoinnin jatkokurssi, kurssikoe

Task list Submit code Submissions Scoreboard View queue Edit contest

Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua.

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

Tietotekniikan valintakoe

Rakenteiset tietotyypit Moniulotteiset taulukot

Algoritmit 1. Luento 13 Ti Timo Männikkö

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Datatähti alkukilpailu

Ohjelmoinnin perusteet Y Python

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Moduli 4: Moniulotteiset taulukot & Bittioperaatiot

finnish BOI 2015, päivä 1. Muistiraja: 256 MB

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Datatähti-alkukilpailu 2005

Osoitin ja viittaus C++:ssa

Datatähti 2000: alkukilpailun ohjelmointitehtävä

Kaulaketju. Syöte. Tuloste. Esimerkki 1. Esimerkki 2

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Loppukurssin järjestelyt

Ohjelmassa on käytettävä funktiota laskeparkkimaksu laskemaan kunkin asiakkaan maksu. Funktio floor pyöristää luvun lähimmäksi kokonaisluvuksi.

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Ohjelmoinnin perusteet Y Python

Tehtävä 1: Veroprosentti

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Kielioppia: toisin kuin Javassa

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

ITKP102 Ohjelmointi 1 (6 op)

C-ohjelmointi, syksy 2006

C-ohjelmointi, syksy Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot. Binääritiedostot. Luento

Luennon sisältö. Taulukot (arrays) (Müldnerin kirjan luku 10) Yksiulotteiset taulukot. Mikä taulukko on? Taulukko-osoitin. tavallinen osoitin

Ohjelmoinnin peruskurssi Y1

Mittaustietojen SAF-aineistokuvaus kaasudatahubiin

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Loppukurssin järjestelyt C:n edistyneet piirteet

Datatähti kilpailu

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Ohjelmoinnin peruskurssi Y1

Datatähti alkukilpailu

Ohjelmoinnin peruskurssi Y1

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

MATEMATIIKKA 5 VIIKKOTUNTIA. PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009

Harjoitustyö 3 - Millosemeni

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

Tietueet. Tietueiden määrittely

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Harjoitus 5 (viikko 48)

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Ohjelmoinnin perusteet, kurssikoe

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Ohjelmoinnin perusteet Y Python

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Ohjelmoinnin perusteet Y Python

Tietorakenteet ja algoritmit

Tieto- ja tallennusrakenteet

Syötteen ainoalla rivillä on yksi positiivinen kokonaisluku, joka on alle = Luvussa ei esiinny missään kohtaa numeroa 0.

Moduli 5: Kehittyneitä piirteitä

811120P Diskreetit rakenteet

Harjoitus 2 (viikko 45)

Uutta Invest for Excel-versiossa 3.8.5

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.

Harjoitus 6 (viikko 42)

Harjoitustyö: virtuaalikone

Latinalaiset neliöt ja taikaneliöt

Algoritmit 1. Luento 13 Ma Timo Männikkö

CABAS. Release Notes 5.4. Uusi kuvien ja dokumenttien käsittely

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.


UML ja luokkien väliset suhteet

Algoritmit 1. Luento 1 Ti Timo Männikkö

5.6. C-kielen perusteet, osa 6/8, Taulukko , pva, kuvat jma

Laskennan vaativuus ja NP-täydelliset ongelmat

Korpusten käsittely clt131, P Luento 3

Ohjelmoinnin perusteet Y Python

Tietorakenteet ja algoritmit

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

1. Mitä seuraava ohjelma tulostaa? Vastaukseksi riittää yksi rivi joka esittää tulosteen. (6 p)

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

etunimi, sukunimi ja opiskelijanumero ja näillä

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Transkriptio:

International Olympiad in Informatics 2013 6-13 July 2013 Brisbane, Australia Day 2 tasks robots Finnish 1.0 Maritan pikkuveli on jättänyt lelunsa ympäri olohuonetta! Onneksi Marita on kehittänyt erikoisrobotteja siivoamaan leluja. Hän tarvitsee apuasi määrittääkseen, minkä robotin tulee kerätä mitkä lelut. Leluja on T kpl, ja jokaisen paino on W[i] ja koko on S[i]. Robotteja on kahdenlaisia: "heikkoja" ja "pieniä". ja robotteja on A kpl. Jokaisella heikolla robotilla on painoraja X[i], ja se voi kantaa kerrallaan yhden lelun, jonka paino on alle X[i]. Lelun koolla ei ole merkitystä. Pieniä robotteja on B kpl. Jokaisella pienellä robotilla on kokoraja Y[i], ja se voi kantaa kerrallaan yhden lelun, jonka koko on alle Y[i]. Lelun painolla ei ole merkitystä. Jokainen Maritan roboteista siirtää syrjään yhden lelun minuutissa. Eri robotit voivat siirtää syrjään eri leluja samaan aikaan. Tehtäväsi on määrittää, pystyvätkö Maritan robotit siirtämään kaikki lelut syrjään, ja jos pystyvät, mikä on pienin tähän tarvittava aika. Esimerkit Oletetaan ensin, että heikkoja robotteja on A = 3 painorajoilla X = [6, 2, 9], pieniä robotteja on B = 2 kokorajoilla Y = [4, 7] ja leluja on T = 10 seuraavasti: Lelun tunnus 0 1 2 3 4 5 6 7 8 9 Paino 4 8 2 7 1 5 3 8 7 10 Koko 6 5 3 9 8 1 3 7 6 5 Lyhin aika siirtää kaikki lelut syrjään on kolme a: 1. 2. 3. robotti 0 robotti 1 robotti 2 Pieni robotti 0 Lelu 0 Lelu 4 Lelu 1 Lelu 6 Lelu 2 Lelu 5 Lelu 3 Lelu 8 Pieni robotti 1 Lelu 7 Lelu 9 https://translate.ioi2013.org/day2/w/robots/fi 1/5

Oletetaan sitten, että heikkoja robotteja on A = 2 painorajoilla X = [2, 5], pieniä robotteja on B = 1 kokorajalla Y = [2] ja leluja on T = 3 seuraavasti: Lelun tunnus 0 1 2 Paino 3 5 2 Koko 1 3 2 Mikään roboteista ei voi ottaa lelua, jonka paino on 5 ja koko on 3, joten robottien ei ole mahdollista siirtää kaikkia leluja syrjään. Toteutus Sinun tulee lähettää tiedosto, jossa on funktion putaway() toteutus seuraavasti: Sinun funktiosi: putaway() C/C++ Pascal int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]); function putaway(a, B, T : LongInt; var X, Y, W, S : array of LongInt) : LongInt; Kuvaus Tämän funktion tulee palauttaa pienin mahdollinen aika minuutteina, joka roboteilta kuluu siirtää kaikki lelut syrjään, tai luku -1, jos tämä ei ole mahdollista. Parametrit A: jen robottien määrä. B: Pienten robottien määrä. T: Lelujen määrä. X: Taulukko kokoa A, jossa olevat kokonaisluvut ilmaisevat kunkin heikon robotin painorajan. Y: Taulukko kokoa B, jossa olevat kokonaisluvut ilmaisevat kunkin pienen robotin kokorajan. W: Taulukko kokoa T, jossa olevat kokonaisluvut ilmaisevat kunkin lelun painon. S: Taulukko kokoa T, jossa olevat kokonaisluvut ilmaisevat kunkin lelun koon. Palauttaa: Pienin aika minuutteina, joka kuluu kaikkien lelujen siirtämiseen syrjään, tai luku -1, jos tämä ei ole mahdollista. https://translate.ioi2013.org/day2/w/robots/fi 2/5

Esimerkki-istunto Seuraava istunto kuvaa ensimmäisen yllä olevan esimerkin: Parameteri Arvo A 3 B 2 T 10 X [6, 2, 9] Y [4, 7] W [4, 8, 2, 7, 1, 5, 3, 8, 7, 10] S [6, 5, 3, 9, 8, 1, 3, 7, 6, 5] Palauttaa 3 Seuraava istunto kuvaa toisen yllä olevan esimerkin: Parameteri Arvo A 2 B 1 T 3 X [2, 5] Y [2] W [3, 5, 2] S [1, 3, 2] Palauttaa -1 Rajat Aikaraja: 3 sekuntia Muistiraja: 64 MiB 1 T 1000000 0 A, B 50000 ja 1 A + B 1 X[i], Y[i], W[i], S[i] 2000000000 https://translate.ioi2013.org/day2/w/robots/fi 3/5

Alitehtävät Alitehtävä Pisteet Syötteen lisärajoitukset 1 14 T = 2 ja A + B = 2 (tarkalleen kaksi lelua ja kaksi robottia) 2 14 B = 0 (kaikki robotit ovat heikkoja) 3 25 T 50 ja A + B 50 4 37 T 10,000 ja A + B 1,000 5 10 (Ei mitään) Kokeilu Esimerkkiarvostelija lukee syötteen tiedostosta seuraava: robots.in, jonka muodon tulee olla rivi 1: A B T rivi 2: X[0] X[A-1] rivi 3: Y[0] Y[B-1] seuraavat T riviä: W[i] S[i] Esimerkiksi ensimmäinen yllä oleva esimerkki tulisi antaa seuraavassa muodossa: 3 2 10 6 2 9 4 7 4 6 8 5 2 3 7 9 1 8 5 1 3 3 8 7 7 6 10 5 Jos A = 0 tai B = 0, niin vastaavan rivin (rivi 2 tai rivi 3) tulee olla tyhjä. https://translate.ioi2013.org/day2/w/robots/fi 4/5

Huomioita kielistä C/C++ Pascal Sinun täytyy #include "robots.h". Sinun täytyy määritellä unit Robots. Kaikkien taulukoiden ensimmäinen indeksi on 0 (ei 1). Katso koneellasi olevia ratkaisupohjia malliksi. https://translate.ioi2013.org/day2/w/robots/fi 5/5