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

Samankaltaiset tiedostot
Datatähti 2019 loppu

Task list Submit code Submissions Scoreboard View queue Edit contest

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

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

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

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

Task list Submit code Submissions Messages Scoreboard View queue Edit contest

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

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

Tehtävä: FIL Tiedostopolut

Tehtävä 2: Säännölliset lausekkeet

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).

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

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

ITKP102 Ohjelmointi 1 (6 op)

{ 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 +

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

S BAB ABA A aas bba B bbs c

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

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

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Automaatit. Muodolliset kielet

KESKI-SUOMEN MAAKUNNAN JA LÄHIKUNTIEN LUKIOIDEN TIETOTEKNIIKAN II KILPAILU

Tehtävä Vastaus

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

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

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

XXIII Keski-Suomen lukiolaisten matematiikkakilpailu , tehtävien ratkaisut

Harjoitus 2 (viikko 45)

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Ohjelmoinnin perusteet Y Python

Säännöllisten kielten sulkeumaominaisuudet

Tehtävä 2: Loppuosataulukko

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

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

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

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

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

Hyvän salasanan tunnusmerkit Hyökkääjästä salasanan pitää näyttää satunnaiselta merkkijonolta. Hyvän salasanan luominen: Luo mahdollisimman pitkä

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

a b c d

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

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

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

Asko Ikävalko, k TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen

Datatähti alkukilpailu

Lukion matematiikkakilpailun alkukilpailu 2015

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

Harjoitus 6 (viikko 42)

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ

Helsingin, Itä-Suomen, Jyväskylän, Oulun, Tampereen ja Turun yliopisto Matematiikan valintakoe klo Ratkaisut ja pisteytysohjeet

Harjoitus 6 (viikko 42)

Tekijä Pitkä Matematiikka 11 ratkaisut luku 2

8. Kieliopit ja kielet

Datatähti 2000: alkukilpailun ohjelmointitehtävä

11.4. Context-free kielet 1 / 17

Ohjelmoinnin perusteet Y Python

Helsingin, Itä-Suomen, Jyväskylän, Oulun, Tampereen ja Turun yliopisto Matematiikan valintakoe klo 10 13

Python-ohjelmointi Harjoitus 2

a) Sievennä lauseke 1+x , kun x 0jax 1. b) Aseta luvut 2, 5 suuruusjärjestykseen ja perustele vastauksesi. 3 3 ja

Matriisipotenssi. Koska matriisikertolasku on liitännäinen (sulkuja ei tarvita; ks. lause 2), voidaan asettaa seuraava määritelmä: ja A 0 = I n.

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

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

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

Tekijä Pitkä matematiikka On osoitettava, että jana DE sivun AB kanssa yhdensuuntainen ja sen pituus on 4 5

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

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Ohjelmoinnin perusteet Y Python

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Tehtävät 1/10. TAMPEREEN YLIOPISTO Informaatiotieteiden tiedekunta Valintakoe Matematiikka ja tilastotiede. Sukunimi (painokirjaimin)

Algoritmit 2. Luento 6 To Timo Männikkö

Kenguru 2016 Ecolier (4. ja 5. luokka)

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Ohjelmoinnin peruskurssi Y1

Luonnolliset vs. muodolliset kielet


Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

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

Ohjelmoinnin perusteet Y Python

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

Talousmatematiikan perusteet, L3 Prosentti, yhtälöt Aiheet

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

JYVÄSKYLÄN SEUDUN. 1. Sisältö * * Tähdellä merkityt kohdat ovat pakollisia. Sivun oikeassa yläkulmasta löytyy Lisää oma tapahtumasi.

Puzzle SM Pistelasku

GeoGebra-harjoituksia malu-opettajille

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Ohjelmiston testaus ja laatu. Testausmenetelmiä

4. Oheisessa 4x4 ruudukossa jokainen merkki tarkoittaa jotakin lukua. Mikä lukua salmiakki vastaa?

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Transkriptio:

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 C Taulukko standard 1.00 s 512 MB D Ruudukko standard 1.00 s 512 MB E Sanalista output only N/A N/A 1 of 10 1/17/19, 9:35 PM

A Kolikot Sinulla on n kolikkoa ja haluat jakaa kolikot pinoihin niin, että missään kahdessa pinossa ei ole yhtä monta kolikkoa. Mikä on suurin mahdollinen pinojen määrä? Entä miten pinot voi muodostaa? Syöte Syötteen ainoalla rivillä on yksi kokonaisluku n: kolikoiden määrä. Tuloste Tulosta ensin kokonaisluku k: suurin mahdollinen pinojen määrä. Tulosta sitten k kokonaislukua: kunkin pinon kolikoiden määrä. Voit tulostaa minkä tahansa kelvollisen ratkaisun. Esimerkki 1 5 2 2 3 Esimerkki 2 14 4 1 3 4 6 Osatehtävä 1 (23 pistettä) 1 n 10 Osatehtävä 2 (25 pistettä) 1 n 1000 Osatehtävä 3 (52 pistettä) 1 n 10 9 2 of 10 1/17/19, 9:35 PM

B Leimasin Haluat muodostaa merkkijonon, jonka pituus on n merkkiä. Merkkijonon merkit on numeroitu 1, 2,, n, ja aluksi jokainen merkki on?. Käytössäsi on leimasin, jonka pituus on m merkkiä. Voit joka siirrolla asettaa leimasimen johonkin merkkijonon kohtaan ja korvata merkkijonon merkit tällä alueella vastaavissa kohdissa olevilla leimasimen merkeillä. Leimasimen täytyy olla kokonaan merkkijonon sisällä joka siirrolla, eikä sen asentoa voi muuttaa. Tehtäväsi on etsiä siirtosarja, jolla voit tuottaa halutun merkkijonon leimasimen avulla, tai todeta, että tämä ei ole mahdollista. Syöte Ensimmäisellä rivillä on merkkijono, jossa on n merkkiä: tavoitteena oleva merkkijono. Toisella rivillä on merkkijono, jossa on m merkkiä: leimasin. Molemmat merkkijonot muodostuvat merkeistä A Z. Tuloste Tulosta ensin kokonaisluku k: siirtojen määrä. Tulosta sitten k kokonaislukua, jotka kuvaavat siirrot järjestyksessä. Jokainen luku on välillä 1 n m + 1 ja ilmaisee leimasimen vasemman kohdan. Voit tulostaa minkä tahansa ratkaisun, jossa k on enintään 10n. Jos mitään ratkaisua ei ole olemassa, tulosta vain luku 1. Esimerkki 1 AABCACA ABCA 3 1 4 2 Selitys: Käytät leimasinta näin:??????? ABCA??? ABCABCA AABCACA. Esimerkki 2 3 of 10 1/17/19, 9:35 PM

AYBABTU AB -1 Osatehtävä 1 (29 pistettä) 1 m n 10 Osatehtävä 2 (31 pistettä) 1 m n 100 Osatehtävä 3 (40 pistettä) 1 m n 1000 4 of 10 1/17/19, 9:35 PM

C Taulukko Annettuna on taulukko, jossa on n lukua. Monessako taulukon yhtenäisessä osataulukossa on enintään k eri lukua? Syöte Syötteen ensimmäisellä rivillä on kaksi kokonaislukua n ja k: taulukon koko ja suurin sallittu määrä eri lukuja osataulukossa. Seuraavalla rivillä on n kokonaislukua x 1, x 2,, x n : taulukon sisältö. Tuloste Tulosta yksi kokonaisluku: tehtävän vastaus. Esimerkki 1 5 2 1 2 3 1 1 10 Esimerkki 2 8 1 1 1 1 1 1 1 1 1 36 Osatehtävä 1 (12 pistettä) 1 k n 100 1 10 x i Osatehtävä 2 (35 pistettä) 1 k n 5000 1 x i 10 6 Osatehtävä 3 (18 pistettä) 1 k n 5 10 5 5 of 10 1/17/19, 9:35 PM

1 k 2 1 x i 10 9 Osatehtävä 4 (35 pistettä) 1 k n 5 10 5 1 x i 10 9 6 of 10 1/17/19, 9:35 PM

D Ruudukko Tehtäväsi on sijoittaa n n -ruudukkoon merkkejä A ja B niin, että jokaisessa ruudussa on enintään yksi merkki ja jokaisella pysty- ja vaakarivillä on tarkalleen yksi merkki A ja yksi merkki B. Lisähaasteena osa merkeistä on sijoitettu valmiiksi. Monellako tavalla voit täydentää ruudukon valmiiksi? Syöte Syötteen ensimmäisellä rivillä on kokonaisluku n: ruudukon koko. Tämän jälkeen syötteessä on n riviä, jotka kuvaavat ruudukon alkutilanteen. Jokaisella rivillä on n merkkiä. Merkki. tarkoittaa tyhjää ruutua, ja merkit A ja B ilmaisevat valmiiksi ruudukossa olevat merkit. Voit olettaa, että syötteessä jokaisella pysty- ja vaakarivillä on enintään yksi merkki A ja enintään yksi merkki B. Tuloste Tulosta yksi kokonaisluku: tehtävän vastaus modulo 10 9 + 7. Esimerkki 5.....AB.... B......A. 16 Osatehtävä 1 (31 pistettä) 2 n 5 Osatehtävä 2 (14 pistettä) 2 n 500 ruudukossa ei ole valmiina mitään merkkejä Osatehtävä 3 (55 pistettä) 7 of 10 1/17/19, 9:35 PM

2 n 500 8 of 10 1/17/19, 9:35 PM

E Sanalista Tehtäväsi on rakentaa säännöllinen lauseke, joka pyrkii tunnistamaan, onko annettu suomen kielen sana kirjoitettu oikein vai väärin päin. Lauseke testataan aineistolla, jonka voit ladata omalle koneellesi tutkittavaksi. Aineisto Tehtävän aineistona on kaksi sanalistaa: Lista A: suomen kielen sanoja kirjoitettuna oikein päin Lista B: samat sanat kirjoitettuna väärin päin Kummankin listan jokaisella rivillä on yksi sana. Listassa A on esimerkiksi sana ohjelmointi ja listassa B vastaavasti itniomlejho. Huomaa, että listoissa on päällekkäisyyksiä: esimerkiksi molemmissa listoissa on sanat aatto ja ottaa. Listat on tallennettu UTF-8-muodossa, millä on vaikutusta ääkkösten ja muiden erikoismerkkien käsittelyssä. Aineisto perustuu Kotimaisten kielten keskuksen nykysuomen sanalistaan, joka on julkaistu EUPL-lisenssillä. Listaa on muokattu tähän tehtävään sopivaksi mm. poistamalla sanat, joissa on tiettyjä erikoismerkkejä. Tehtävä Laadi säännöllinen lauseke S, joka täsmää mahdollisimman moneen listan A sanaan ja mahdollisimman harvaan listan B sanaan. Molemmissa listoissa on n = 93855 sanaa. Olkoot a niiden listan A sanojen määrä, joihin S täsmää, ja b niiden listan B sanojen määrä, joihin S täsmää. Tällöin osumatarkkuus on Tavoitteesi on päästä mahdollisimman korkeaan osumatarkkuuteen. Esimerkkejä: a + n b r =. 2n Säännöllinen lauseke.*rv.* täsmää a = 1453 sanaan listassa A ja b = 2 sanaan listassa B, joten osumatarkkuus on r 0.508. Säännöllinen lauseke xyzzy ei täsmää mihinkään sanaan listoissa A ja B, ja osumatarkkuus on r = 0.5. Säännöllinen lauseke.* täsmää kaikkiin sanoihin listoissa A ja B, ja osumatarkkuus on r = 0.5. 9 of 10 1/17/19, 9:35 PM

Pisteytys Jos laatimasi lauseke on kelvollinen (ks. alla täsmälliset säännöt), saat pisteitä osumatarkkuudesta r riippuen kaavalla Esimerkiksi osumatarkkuus 0.55 antaa 0 pistettä, osumatarkkuus 0.75 antaa 50 pistettä ja osumatarkkuus 0.95 antaa 100 pistettä, mikä on tehtävän maksimipistemäärä. Säännölliset lausekkeet Säännöllinen lauseke on merkkijono, joka täsmää yhteen tai useampaan merkkijonoon. Tässä tehtävässä voit käyttää lausekkeessa kaikkia aineistossa esiintyviä merkkejä, vaihtoehtoa ( ), toistoa (*), sulkuja sekä yleismerkkiä (.). Vaihtoehdon avulla voit antaa useamman kelpaavan merkkijonon. Esimerkiksi lauseke apina banaani cembalo täsmää merkkijonoihin apina, banaani ja cembalo. Toisto tarkoittaa, että sitä edeltävä lausekkeen osa voi toistua miten tahansa monta kertaa. Esimerkiksi lauseke (aa)* vaatii, että merkkijonon jokainen merkki on a ja sen pituus on parillinen (myös tyhjä merkkijono on sallittu). Yleismerkki. täsmää mihin tahansa yksittäiseen merkkiin. Esimerkiksi lauseke.*abc.* täsmää mihin tahansa merkkijonoon, jossa on jossain kohtaa merkkijono abc, koska alussa ja lopussa voi olla mitä tahansa. Esimerkki mutkikkaammasta lausekkeesta on api(la na).*s. Tämä lauseke täsmää sanoihin apila, apina sekä mihin tahansa sanaan, jossa viimeinen kirjain on s, kuten sanoihin ilmoitus ja ratas. Palautusohje min(100, max(0, 250 (r 0.55) )). Palauta UTF-8-muotoinen tekstitiedosto, jossa on laatimasi säännöllinen lauseke. Lausekkeen pituus saa olla enintään 500 merkkiä. Voit käyttää halutessasi lausekkeessa välilyöntejä ja rivinvaihtoja. Tarkastaja jättää nämä huomiotta, eikä niitä lasketa lausekkeen pituuteen. Esimerkiksi.*rv.* on kelvollinen ratkaisu, jonka pituus on 6 merkkiä. Tämän lausekkeen osumatarkkuus on 0.508, joten sillä ei saa vielä tehtävästä pisteitä. 10 of 10 1/17/19, 9:35 PM