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

Samankaltaiset tiedostot
Sinulle on annettu bittijono, ja tehtäväsi on muuttaa jonoa niin, että jokainen bitti on 0.

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

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

Syötteen ensimmäisellä rivillä on kokonaisluku n, testien määrä (1 n 10). Tämän jälkeen jokaisella seuraavalla rivillä on kokonaisluku x (0 x 1000).

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

Esimerkiksi jos käytössä ovat kirjaimet FFII, mahdolliset nimet ovat FIFI ja IFIF. Näistä aakkosjärjestykssä ensimmäinen nimi on FIFI.

Datatähti 2019 loppu

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2

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

Toisessa kyselyssä alueella on 1 ruudussa A ja 3 ruudussa B, joten suosituin ehdokas on B.

Lukuspiraali. Syöte. Tuloste. Esimerkki 1. Esimerkki 2. Esimerkki 3. Tarkastellaan seuraavanlaisia lukuspiraaleita:

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Task list Submit code Submissions Scoreboard View queue Edit contest

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

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

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

Matematiikassa väitelauseet ovat usein muotoa: jos P on totta, niin Q on totta.

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

1. Mikä on lukujen 10, 9, 8,..., 9, 10 summa? 2. Mikä on lukujen 10, 9, 8,..., 9, 10 tulo? =?

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

Merkitse kertolasku potenssin avulla ja laske sen arvo.

Algoritmit 1. Demot Timo Männikkö

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

Algoritmit 1. Demot Timo Männikkö

Kenguru Cadet, ratkaisut (1 / 6) luokka

Todistusmenetelmiä Miksi pitää todistaa?

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

Helsingin seitsemäsluokkalaisten matematiikkakilpailu Ratkaisuita

1 Lukujen jaollisuudesta

Tehtävä Vastaus

Datatähti alkukilpailu

= 3 = 1. Induktioaskel. Induktio-oletus: Tehtävän summakaava pätee jollakin luonnollisella luvulla n 1. Induktioväite: n+1

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

LUKUTEORIA johdantoa

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:

Tehtävä Vastaus

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

{ 2v + 2h + m = 8 v + 3h + m = 7,5 2v + 3m = 7, mistä laskemmalla yhtälöt puolittain yhteen saadaan 5v + 5h + 5m = 22,5 v +

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

Kenguru 2012 Cadet (8. ja 9. luokka)

Kenguru 2013 Student sivu 1 / 7 (lukion 2. ja 3. vuosi)

a k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx

Kenguru 2019 Student lukio

Tekijä MAA2 Polynomifunktiot ja -yhtälöt = Vastaus a)

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

(iv) Ratkaisu 1. Sovelletaan Eukleideen algoritmia osoittajaan ja nimittäjään. (i) 7 = , 7 6 = = =

Ajattele julkisivu jonka kauneus on ikuista

Helsingin seitsemäsluokkalaisten matematiikkakilpailu Ratkaisuita

Kenguru 2017 Student lukio

Tarkennamme geneeristä painamiskorotusalgoritmia

Aritmeettinen summa Laske. a) b) 23 + ( 24) + ( 25) + ( 26) + ( 27) + ( 28) Ratkaisu.

ITKP102 Ohjelmointi 1 (6 op)

c) 22a 21b x + a 2 3a x 1 = a,

MAB3 - Harjoitustehtävien ratkaisut:

Johdatus matemaattiseen päättelyyn

Algoritmit 1. Demot Timo Männikkö

Toinen harjoitustyö. ASCII-grafiikkaa

a b c d

Ratkaisu. Ensimmäinen kuten P Q, toinen kuten P Q. Kolmas kuten P (Q R):

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

Lukion matematiikkakilpailun alkukilpailu 2015

Algoritmit 1. Luento 1 Ti Timo Männikkö

Datatähti 2000: alkukilpailun ohjelmointitehtävä

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Kenguru 2015 Ecolier (4. ja 5. luokka)

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

MAB3 - Harjoitustehtävien ratkaisut:

Suurin yhteinen tekijä (s.y.t.) ja pienin yhteinen monikerta (p.y.m.)

a b c d

Valitse kuusi tehtävää! Kaikki tehtävät ovat 6 pisteen arvoisia.

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

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

4 LUKUJONOT JA SUMMAT

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Algoritmit 1. Demot Timo Männikkö

Kertaus. x x x. K1. a) b) x 5 x 6 = x 5 6 = x 1 = 1 x, x 0. K2. a) a a a a, a > 0

Vastaoletuksen muodostaminen

Mat Lineaarinen ohjelmointi

Kenguru 2017 Ecolier: Ratkaisut (4. ja 5. luokka)

Vastaukset. 2. Ottamalla kaapista 4 kenkää ja 3 sukkaa.

Algoritmit 2. Luento 13 Ti Timo Männikkö

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

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

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

x + 1 πx + 2y = 6 2y = 6 x 1 2 πx y = x 1 4 πx Ikkunan pinta-ala on suorakulmion ja puoliympyrän pinta-alojen summa, eli

Kenguru Benjamin, ratkaisut (1 / 6) luokka

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Kenguru 2014 Ecolier (4. ja 5. luokka)

Kenguru 2016 Ecolier (4. ja 5. luokka)

! 7! = N! x 8. x x 4 x + 1 = 6.

Matematiikan mestariluokka, syksy

Tehtävä: FIL Tiedostopolut

joissa on 0 4 oikeata vastausta. Laskimet eivät ole sallittuja.

XXIII Keski-Suomen lukiolaisten matematiikkakilpailu , tehtävien ratkaisut

Tee konseptiin pisteytysruudukko! Muista kirjata nimesi ja ryhmäsi. Lue ohjeet huolellisesti!

Transkriptio:

A Lista Aikaraja: 1 s Uolevi sai käsiinsä listan kokonaislukuja. Hän päätti laskea listan luvuista yhden luvun käyttäen seuraavaa algoritmia: 1. Jos listalla on vain yksi luku, pysäytä algoritmi. 2. Jos listalla on parillinen määrä lukuja, poista kaksi suurinta lukua ja lisää niiden summa listan loppuun 3. Jos listalla on pariton määrä lukuja, poista kaksi pienintä lukua ja lisää niiden summa listan loppuun. Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua. Tarkastellaan esimerkiksi algoritmin suoritusta listalla [4, 3, 4, 5]. Aluksi listalla on parillinen määrä lukuja ja kaksi suurinta lukua ovat 5 ja 4. Tämän seurauksena listasta tulee [3, 4, 9]. Nyt listalla on pariton määrä lukuja ja kaksi pienintä lukua ovat 3 ja 4. Tämän seurauksena listasta tulee [9, 7]. Lopuksi listalla on enää kaksi lukua, listasta tulee [16] ja algoritmi pysähtyy. Tehtäväsi on selvittää listalla oleva luku, kun algoritmi pysähtyy. Syötteen ensimmäisellä rivillä on kokonaisluku n, listan lukujen määrä. Syötteen toinen rivi sisältää kaikki listan luvut välilyönnein erotettuina. Jokainen luku on kokonaisluku välillä 1..1000. Ohjelman tulee tulostaa yksi rivi, joka sisältää listalla olevan luvun, kun algoritmi pysähtyy. 4 16 4 3 4 5 1 999 999 Osatehtävä 1 (70 p) 1 n 1000 Osatehtävä 2 (30 p) 1 n 10 5

B Neliösumma Aikaraja: 2 s Tunnettu lukuteorian tulos on, että jokainen luonnollinen luku (eli ei-negatiivinen kokonaisluku) voidaan esittää neljän luonnollisen luvun neliön summana. Toisin sanoen annetulle luonnolliselle luvulle n on aina olemassa luonnolliset luvut a, b, c ja d, joille pätee n = a 2 + b 2 + c 2 + d 2. Esimerkiksi jos n = 25, voidaan valita a = 4, b = 2, c = 1 ja d = 2. Tehtäväsi on etsiä luvulle n yllä olevan mukaisesti luvut a, b, c ja d. Syötteen ainoa rivi sisältää luvun n. Ohjelman tulee tulostaa yksi rivi, joka sisältää luvut a, b, c ja d. Jos ratkaisuja on useita, ohjelma voi tulostaa minkä tahansa niistä. 25 4 2 1 2 2 1 0 0 1 Esimerkki 3 1835008 768 768 768 256 Osatehtävä 1 (55 p) 0 n 1000 Osatehtävä 3 (45 p) 0 n 10 7

C Merkkijono Aikaraja: 1 s Sinulle on annettu merkkijono, ja tehtäväsi on järjestää merkit niin, että missään kohdassa ei ole kahta samaa merkkiä vierekkäin. Syötteen ainoa rivi sisältää merkkijonon, joka muodostuu merkeistä A..Z. Ohjelman tulee tulostaa uusi merkkijono, joka sisältää annetun merkkijonon merkit ja jossa ei ole missään kohdassa kahta samaa merkkiä vierekkäin. Jos ratkaisuja on useita, ohjelman tulee antaa aakkosjärjestyksessä ensimmäinen ratkaisu. Voit olettaa, että ratkaisu on olemassa. APINA AIANP BANAANI ABAINAN Esimerkki 3 CEMBALO ABCELMO Osatehtävä 1 (25 p) Merkkijonossa on korkeintaan 10 merkkiä. Osatehtävä 2 (35 p) Merkkijonossa on korkeintaan 100 merkkiä. Osatehtävä 3 (40 p) Merkkijonossa on korkeintaan 10 5 merkkiä.

D Taulukko Aikaraja: 2 s Annettuna on taulukko lukuja, ja tehtäväsi on toteuttaa seuraavat operaatiot: 1. muuta annettua taulukon lukua 2. tutki, onko annetulla välillä kahta samaa lukua Syötteen ensimmäisellä rivillä on kokonaisluku n, lukujen määrä. Seuraava rivi sisältää n lukua, joista jokainen on kokonaisluku välillä 1..10 9. Sitten syötteessä on kokonaisluku q, operaatioiden määrä. Lopuksi syötteessä on q riviä, joista jokaisella on yhden operaation kuvaus. Jokainen operaation kuvaus muodostuu kolmesta kokonaisluvusta a, b ja c. Jos a = 1, taulukon kohdan b luvuksi tulee vaihtaa c (silloin 1 b n ja 1 c 10 9 ). Jos a = 2, ohjelman täytyy tutkia, onko taulukossa välillä b..c kahta samaa lukua (silloin 1 b c n). Taulukon ensimmäinen luku on kohdassa 1 ja viimeinen luku on kohdassa n. Ohjelman täytyy tulostaa jokaista operaatiota 2 kohden YES, jos annetulla välillä on kaksi samaa lukua, ja muuten NO. Esimerkki 5 NO 3 2 7 2 8 YES 4 NO 2 3 5 2 2 5 1 2 9 2 2 5 Osatehtävä 1 (20 p) 1 n 1000, 1 q 1000 Osatehtävä 2 (30 p) 1 n 10 5, 1 q 10 5 Kaikki syötteen operaatiot ovat operaatioita 2. Osatehtävä 3 (50 p) 1 n 10 5, 1 q 10 5

E Labyrintti Aikaraja: 4 s Olet labyrintissa ja sinun täytyy kerätä kaikki siellä olevat aarteet tukikohtaasi. Jaksat kantaa vain tietyn määrän aarteita kerrallaan. Kuinka monta askelta joudut ottamaan vähintään? Syötteen ensimmäinen rivi sisältää kokonaisluvut n, m, a ja r: labyrintin korkeus ja leveys, aarteiden määrä sekä montako aarretta jaksat kantaa kerrallaan. Tämän jälkeen syötteessä on n riviä, joista jokaisella on m merkkiä. Mahdolliset merkit ovat: # tarkoittaa labyrintin seinää,. tarkoittaa lattiaa, A tarkoittaa aarretta ja T tarkoittaa tukikohtaa. Labyrintissa on tarkalleen a ruudussa merkki A ja tarkalleen yhdessä ruudussa merkki T. Voit kulkea labyrintissa kaikissa ruuduissa paitsi niissä, joissa on merkki #. Kaikissa labyrintin reunaruuduissa on merkki #, ja tukikohdasta pääsee kaikkiin aarteisiin. Ohjelman täytyy tulostaa pienin mahdollinen askelmäärä, jolla saat kerättyä kaikki aarteet labyrintista. Lähdet matkaan tukikohdasta ja sinun täytyy palata sinne lopuksi. Joka askeleella voit liikkua viereiseen ruutuun vasemmalle, oikealle, ylöspäin tai alaspäin. Pystyt kantamaan kerrallaan korkeintaan r aarretta. Esimerkki 5 8 3 2 24 ######## #...A# #A#.##.# #.#T#.A# ######## Osatehtävä 1 (15 p) 1 n, m 10, 1 r a 8 Osatehtävä 2 (20 p) 1 n, m 1000, 1 r a 8 Osatehtävä 3 (65 p) 1 n, m 1000, 1 r a 16