Pod vejme se nyn na autorsk e en (zdrojov texty jsme po form ln str nce sjednotili) anato,jak byl jednotliv mi programy p eveden text ze zadan ho soub

Podobné dokumenty
Algoritmizace a programování

Algoritmizace a programování

Ovoce do škol Příručka pro žadatele

59. ročník Matematické olympiády 2009/2010

Pokud se vám tyto otázky zdají jednoduché a nemáte problém je správně zodpovědět, budete mít velkou šanci v této hře zvítězit.

10 je 0,1; nebo taky, že 256

Line rn oper tory v euklidovsk ch prostorech V t to sti pou ijeme obecn v sledky o line rn ch oper torech ve vektorov ch prostorech nad komplexn mi sl

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

Měření změny objemu vody při tuhnutí

Zadání soutěžních úloh

( x ) 2 ( ) Další úlohy s kvadratickými funkcemi. Předpoklady: 2501, 2502

Poukázky v obálkách. MOJESODEXO.CZ - Poukázky v obálkách Uživatelská příručka MOJESODEXO.CZ. Uživatelská příručka. Strana 1 / 1. Verze aplikace: 1.4.

KempHoogstad daňové novinky. Prosinec 2013

Název: O co nejvyšší věž

C: Char F: Text Konec: Boolean function DalsiKroky(S: Integer): Integer var R, I, K: Integer R := 0 for I := 0 to N do for K := 0 to M do if A[I,K] =

INTERNETOVÝ TRH S POHLEDÁVKAMI. Uživatelská příručka

Žáci mají k dispozici pracovní list. Formou kolektivní diskuze a výkladu si osvojí grafickou minimalizaci zápisu logické funkce

Jak na KOTLÍKOVÉ DOTACE? JEDNODUCHÝ RÁDCE PRO ZÁKAZNÍKY

OBEC HORNÍ MĚSTO Spisový řád

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO PŘÍRUČKA UŽIVATELE

ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ

Řešení: Dejme tomu, že pan Alois to vezme popořadě od jara do zimy. Pro výběr fotky z jara má Alois dvanáct možností. Tady není co počítat.

Vydání občanského průkazu

Geometrické plány (1)

Zadání. Založení projektu

4 Stromy a les. Petr Hlin їn 0 5, FI MU Brno 1 FI: MA010: Stromy a les

1.2.5 Reálná čísla I. Předpoklady:

HERNÍ PLÁN. pro provozování okamžité loterie Milionové recepty

HERNÍ PLÁN. pro provozování okamžité loterie ZLATÁ RYBKA

OSOBNÍ DOPRAVA. G. Technické normy a technická hlediska provozu

I. ročník M E M O R I Á L U

Poměry a úměrnosti I

metodická příručka DiPo násobení a dělení (čísla 6, 7, 8, 9) násobilkové karty DiPo

NÁVRH KUPNÍ SMLOUVY: KUPNÍ SMLOUVA

Uživatelská dokumentace

ŘÁD UPRAVUJÍCÍ POSTUP DO DALŠÍHO ROČNÍKU

Všeobecné obchodní podmínky společnosti OT Energy Services a.s. platné od

uzavírají podle ustanovení 1746 odst. 2 zákona č. 89/2012 Sb., občanský zákoník (dále jen občanský zákoník ), tuto

Testovací aplikace Matematika není věda

K novému způsobu přijímacího řízení - říjen 2008

DRAŽEBNÍ ŘÁD PRO DRAŽBU NEMOVITOSTÍ

Sp. zn.: ČŠIG-S-471/11-G

ŠKOLNÍ ŘÁD. Soukromé základní umělecká škola D-MUSIC s.r.o.

Zvyšování kvality výuky v přírodních a technických oblastech CZ.1.07/1.128/ Nástrahy virtuální reality (pracovní list)

účetních informací státu při přenosu účetního záznamu,

ROZCVIČKY. (v nižší verzi může být posunuta grafika a špatně funkční některé odkazy).

Novinky verzí SKLADNÍK 4.24 a 4.25

Zásady pro prodej bytových domů Městské části Praha 5

HERNÍ PLÁN pro provozování okamžité loterie POMÁHÁME NAŠÍ ZOO - DŽUNGLE

Zpráva o výsledku přezkoumání obce Valdíkov

227/2000 Sb. ZÁKON ČÁST PRVNÍ ELEKTRONICKÝ PODPIS

Program na obrazovku vyp e, kolik r zn ch sel se v posloupnosti opakovalo (v na em p kladu se opakuje 5 sel: 7, 10, ;8, 9 a 2, tak e program vyp e: 5)

SAUT 3.1. program pro vyhodnocení výsledků zkoušení impulzní odrazovou metodou

Obsah. Úvodem 9 Komu je kniha určena 9 Forma výkladu 9 Konkrétní postup výuky 10 Příklady ke knize 11

S_5_Spisový a skartační řád

Smlouva o dílo. 1. Smluvní strany

Rozhodněte se, co budete dál dělat

Rozšířená nastavení. Kapitola 4

STANOVY BYTOVÉHO DRUŽSTVA

The University of Plymouth

STANDARD 3. JEDNÁNÍ SE ZÁJEMCEM (ŽADATELEM) O SOCIÁLNÍ SLUŽBU

PŘIJÍMACÍ ŘÍZENÍ. Strana

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

PRAVIDLA PRO PŘIDĚLOVÁNÍ BYTŮ V MAJETKU MĚSTA ODOLENA VODA

WEBDISPEČINK NA MOBILNÍCH ZAŘÍZENÍCH PŘÍRUČKA PRO WD MOBILE

1.2.7 Druhá odmocnina

ORGANIZAČNÍ ŘÁD ŠKOLY

Programy SFRB využijte co nejvýhodněji státní úvěr na opravu vašeho bytového domu.

Základní škola a základní umělecká škola

ZADÁVACÍ DOKUMENTACE 1) Identifikace zadavatele 2) P esné vymezení p edm tu zakázky a požadavk zadavatele

Sedláčková TŘÍDA ANOTACE PLNĚNÉ VÝSTUPY

městské části Praha 3 pro rok 2016 připravila

Orientační průvodce mateřstvím a rodičovstvím v zadávacích dokumentacích poskytovatele

SO 182 DIO NA RYCHLOST. SILNICI R4 PS, km 9,196-11,926

POZVÁNKA NA MIMOŘÁDNOU VALNOU HROMADU

Výzva k podání nabídek (zadávací dokumentace)

Návod k používání registračního systému ČSLH

Domov Pod Lipami Smečno, poskytovatel sociálních služeb. Pravidla. pro poskytování sociální služby Denní stacionář pro seniory

Všeobecné obchodní podmínky

Zásady pro vypracování disertační práce Fakulty strojní VŠB-TUO

Ėlektroakustika a televize. TV norma ... Petr Česák, studijní skupina 205

GEOMETRICKÁ TĚLESA. Mnohostěny

MĚSTO HRÁDEK NAD NISOU ZÁSADY PRODEJE POZEMKŮ VE VLASTNICTVÍ MĚSTA HRÁDKU NAD NISOU INTERNÍ PŘEDPIS MĚSTA HRÁDKU NAD NISOU

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

3 nadbytek. 4 bez starostí

Jak pracovat s kalkulačním programem HELUZ komín

T A L E N T zlínská cena studentského designu

A. PODÍL JEDNOTLIVÝCH DRUHŮ DOPRAVY NA DĚLBĚ PŘEPRAVNÍ PRÁCE A VLIV DÉLKY VYKONANÉ CESTY NA POUŽITÍ DOPRAVNÍHO PROSTŘEDKU

M Ě S T O I V A N Č I C E Palackého náměstí 196/6, Ivančice

4.5.1 Magnety, magnetické pole


Směrnice kvestorky AMU č. 1/2004

Matematický KLOKAN kategorie Benjamín

MĚSTO BENEŠOV. Rada města Benešov. Vnitřní předpis č. 16/2016. Směrnice k zadávání veřejných zakázek malého rozsahu. Čl. 1. Předmět úpravy a působnost

Podrobný postup pro doplnění Žádosti o dotaci prostřednictvím Portálu Farmáře. 1. kolo příjmu žádostí Programu rozvoje venkova ( )

Gymnázium Christiana Dopplera, Zborovská 45, Praha 5. ROČNÍKOVÁ PRÁCE Teoretické řešení střech

4. Připoutejte se, začínáme!

Čtyři atesty a přece není pravá

TECHNICKÉ KRESLENÍ A CAD

9. funkční období. (Navazuje na sněmovní tisk č. 590 z 6. volebního období PS PČR) Lhůta pro projednání Senátem uplyne 1.

Transkript:

INFORMATIKA Obra slova REDAKCE ; ty i studenti e ili (v sout i pro ky z kladn ch kol) lohu, kter byla formulov na takto: M se napsat program, kter te textov soubor Vstup.txt a vytvo soubor Vystup.txt. Vstupn soubor obsahuje ur- itou skupinu slov, v nich se nevyskytuj diakritick znam nka, a v stupn soubor m obsahovat tat slova, ale psan obr cen (nap. obsahuje-li vstupn soubor slova Srub u jezera, obsahuje v stupn soubor et zec bursuarezej ). Hned na za tku ekn me, e toto zad n se uk zalo z sti jako ne- pln a z sti je e itel ne zcela dob e pochopili. P edn jde o denici (vysv tlen ) pojmu "slovo". V zad n je zvoleno vysv tlen pomoc uveden ho p kladu Srub u jezera, kter m je ur eno, e ka d slovo esk ho (i jin ho) jazyka je slovem i ve smyslu zadan lohy. P klad v ak neobsahuje interpunk n znam nka, tak e bylo na vaze e itel, jestli toto p padn znam nku (nap. rku ve v t ) ponech na m st nebo p ipoj k p edchoz mu slovu. D le pak nen uveden m p kladem specikov no, jestli slo (skupina slic) se m ch pat jako slovo a m se tedy obr tit, nebo se m ponechat beze zm ny. e itel si s t mito probl my poradili po sv m. V sledky e itel byly testov ny na zadan m souboru Vstup.txt: Auto OCK 59-20 vjelo do jezera. Nikdo se nezranil, ale auto utonulo. To je vse... Matematika - fyzika - informatika 18 2008/2009 617

Pod vejme se nyn na autorsk e en (zdrojov texty jsme po form ln str nce sjednotili) anato,jak byl jednotliv mi programy p eveden text ze zadan ho souboru do souboru v stupn ho. program ObrSlovA var F1, F2: Text Tex, Tex1: string I: Integer begin {program A} Assign(F1,'Vstup.txt') Assign(F2,'VystupA.txt') Reset(F1) Rewrite(F2) WriteLn('Obraceni slov A') while not Eof(F1) do begin ReadLn(F1, Tex) Tex1 := '' for I := Length(Tex) downto 1 do Tex1 := Tex1 + Copy(Tex, I, 1) WriteLn(F2, Tex1) end Close(F1) Close(F2) end. {program A} e itel A zcela kol nepochopil a velmi si t m jeho pln n uleh il. Pova- uje toti za jedno slovo cel dek. Na te najednou cel dek do et zcov prom nn Tex a text ukl d pozp tku po znac ch do et zcov prom nn Tex1. Dost v tak ve v stupn m souboru text.arezej od olejv 02-95 KCO otua.olunotu otua ela,linarzen es odkin...esv ej ot 618 Matematika - fyzika - informatika 18 2008/2009

To v ak nen v souladu s p kladem ze zed n lohy. Program je nav c naps n zbyte n slo it, t eba m sto vol n funkce Copy(Tex, I, 1) sta ilo pou t prostou indexaci znakov ho et zce ve tvaru Tex[I]. program ObrSlovB var F1, F2: Text Tex: string Znak: Char I: Integer begin {program B} Assign(F1, 'Vstup.txt') Assign(F2, 'VystupB.txt') Reset(F1) Rewrite(F2) WriteLn('Obraceni slov B') while not Eof(F1) do begin Tex := '' repeat Read(F1, Znak) Tex := Tex + Znak until not (Znak in ['a'..'z','a'..'z']) for I := Length(Tex) - 1 downto 1 do Write(F2, Tex[I]) Write(F2, Tex[Length(Tex)]) end Close(F1) Close(F2) end. {program B} e itel B obrac slova jedno za druh m a ka d zvl, ostatn znaky nebo znakov skupinyd v do v stupu beze zm n (nap. 59-20). Jednotliv slova ze vstupu skl d do et zcov prom nn Tex, kterou pak pozp tku po znac ch pos l do v stupu. Neabecedn znaky pos l do v stupu po Matematika - fyzika - informatika 18 2008/2009 619

jednom a vyu v toho, e cyklus for-downto od 0 do 1 nic nevykon. Ve v stupn m souboru je otua KCO 59-20 olejv od arezej. odkin es linarzen, ela otua olunotu. ot ej esv... Zde lze souhlasit, e v sledek je v souladu se zad n m. program ObrSlovC var F1, F2: Text Tex: string I, K: Integer procedure Init(var T: string) var J: Integer begin for J := 1 to 255 do T[J] := #0 T[0] := #255 end begin {program C} Assign(F1, 'Vstup.txt') Assign(F2, 'VystupC.txt') Reset(F1) Rewrite(F2) WriteLn('Obraceni slov C') while not Eof(F1) do begin while not Eoln(F1) do begin K := 0 Init(Tex) repeat 620 Matematika - fyzika - informatika 18 2008/2009

K := K + 1 Read(F1, Tex[K]) until (Tex[K] = ' ') or Eoln(F1) if Tex[K] = ' ' then K := K - 1 for I := K~downto 1 do Write(F2, Tex[I]) if Tex[K + 1] = ' ' then Write(F2, ' ') end ReadLn(F1) if not Eof(F1) then WriteLn(F2) end Close(F1) Close(F2) end. {program C} e itel C pova uje za slovo skupinu jak chkoli znak od za tku dku nebo po meze e a po konec dku nebo po mezeru. Ka dou takovou skupinu po znac ch na te a po znac ch pozp tku po le do v stupu zvl e v stup mezery a konce dku. Tak zde se vyu v toho, e cyklus for-downto od 0 do 1 nic nevykon. Ve v stupn m souboru je otua KCO 02-95 olejv od.arezej odkin es,linarzen ela otua.olunotu ot ej...esv Zde bylo zad n tedy pochopeno jinak, mo n m n vhodn. program ObrSlovD var F1, F2: Text Tex: string Znak: Char begin {program D} Matematika - fyzika - informatika 18 2008/2009 621

Assign(F1, 'Vstup.txt') Assign(F2, 'VystupD.txt') Reset(F1) Rewrite(F2) WriteLn('Obraceni slov') Tex := '' while not Eof(F1) do begin Read(F1, Znak) if not (Znak in ['a'..'z','a'..'z']) then begin if Tex <> '' then begin Write(F2,Tex) Tex := '' end Write(F2,Znak) end else Tex := Znak + Tex end Close(F1) Close(F2) end. {program D} e itel D pochopil lohu stejn jako B, tj. obrac jen textov slova. Jeho algoritmus je v ak pr hledn j. Abecedn znaky skl d do vypr zdn n et zcov prom nn Tex p kazem Tex := Znak + Tex, tj. slovo se mu ukl d u obr cen. Kdy na te neabecedn znak, nejprve vyp e p ipraven slovo, pokud je nepr zdn, a pak na ten znak. V sledn text je stejn jako v p pad B. Vid me, e texty loh, maj -li b t pochopeny jednozna n, je t eba zad vat p esn ji. (Autorkou vodn ilustrace je Mgr. Jaroslava erm kov zesuch ch Lazc.) 622 Matematika - fyzika - informatika 18 2008/2009

59. ro n k Matematick olympi dy{ 2009/2010 lohy dom c ho kola kategorie P lohy P-I-1 a P-I-2jsou prakticky zam en a va m kolem v nich je vytvo it a odladit efektivn program v jazyce Pascal, C nebo C++. e- en t chto dvou loh budete odevzd vat ve form zdrojov ho k du p es webov rozhran p stupn na str nce http://mo.m.cuni.cz/submit/, kde t naleznete dal informace. Odevzdan e en budou automaticky vyhodnocena pomoc p ipraven ch vstupn ch dat a v sledky vyhodnocen se kr tce po odevzd n dozv te. Pokud v program nez sk pln po et bod, m ete sv e en opravit a znovu odevzdat. lohy P-I-3 a P-I-4 jsou teoretick, va m kolem je nal zt efektivn algoritmus e c zadan probl m. e en lohy se tedy skl d z popisu navr en ho algoritmu, zd vodn n jeho spr vnosti (funk nosti) a odhadu asov a pam ov slo itosti. Sou st e en je i z pis algoritmu ve form zdrojov ho k du nebo pseudok du v loze P-I-3 a v jazyce po ta e Kvak v loze P-I-4. Sv e en m ete odevzdat ve form souboru typu PDF p es v e uveden webov rozhran nebo zaslat po tou na adresu: Matematick olympi da { kategorie P KSVI MFF UK Malostransk n m st 25 118 00 Praha 1 e en v ech loh m ete odevzd vat do 15. listopadu 2009. Opraven e en loh P-I-3 a P-I-4 dostanete zp t prost ednictv m krajsk ch komis MO. Seznam postupuj c ch do krajsk ho kola najdete na webov ch str nk ch olympi dy na adrese http://mo.m.cuni.cz/, kde jsou tak k dispozici dal informace o kategorii P. Matematika - fyzika - informatika 18 2008/2009 623

P-I-1 Mal Bonif c Radn v Kocourkov vypsali ned vno v b rov zen na velmi odpov dnou a d le itou innost: malov n chodn ku p ed radnic. Ve v b rov m zen zv t zil mal Bonif c (jedin uchaze a zcela n hodou tak starost v bratr). Jak u to b v, sotva Bonif c podepsal smlouvu, hned za al dost vat z radnice jeden p kaz za druh m: Tento kus chodn ku nat t zelenou barvou, tento r ovou, potom to skoro cel p et t na b lo ::: Netrvalo dlouho a Bonif c si v iml, e se n kter p kazy p ekr vaj. A kdy si uv domil, e ho smlouva zavazuje prov st v echny p kazy v tom po ad, v jak m je dostal, za aly ho obch zet mdloby. Na t st v ak p i el na geni ln n pad. Kdyby v d l, jak m chodn k vypadat nakonec po proveden v ech p kaz, mohl by ho tak namalovat rovnou a potom se tv it, e on p ece v echny p kazy dodr el. A hlavn potom radnici v echno vy tuje podle p vodn ch p kaz a je t na tom po dn vyd l. Sout n loha Chodn k p ed radnic m K kocourkovsk ch krok. Jeden jeho konec bude m t sou adnici 0, opa n konec m sou adnici K. V sou asnosti m cel chodn k asfaltov ernou barvu. Bonif c pou v F jin ch barev, o slovan ch od1dof.postupn dostal N p kaz. Ka d z nich zap eme ve tvaru `a i b i f i ', kde a i a b i jsou sou adnice za tku a konce seku a f i je barva, kterou se m tento sek obarvit. Na obarven jednoho metru chodn ku pot ebuje Bonif c jeden litr barvy. Pro ka dou z barev spo tejte, kolik litr bude Bonif c pot ebovat. Form t vstupu Vstupn soubor se jmenuje bonifac.in. Na prvn m dku souboru jsou t i cel sla N (po et p kaz ), F (po et barev) a K (d lka chodn ku) odd len mezerami (1 N 100 000, 1 F K 1 000 000 000). N sleduje N dk, z nich ka d popisuje jeden p kaz, a to v po ad, v jak m je Bonif c dostal. P itom i-t zt chto dk obsahuje t i cel sla a i, b i a f i odd len mezerami (0 a i <b i K, 1 f i F ). Pro 8 z 10 testovac ch vstup bude nav c platit K 100 000. Pro 6 z t chto 8 testovac ch vstup bude nav c N 1 000, a pro 3 z t chto 6 vstup tak K 1 000. Form t v stupu V stupn soubor se jmenuje bonifac.out. Pro ka dou z F barev (v po- 624 Matematika - fyzika - informatika 18 2008/2009

ad jejich sel) zapi te do v stupn ho souboru jeden dek obsahuj c jedno cel slo { kolik litr t to barvy bude Bonif c pot ebovat. P klad Vstupn soubor bonifac.in: 4 5 7 1 1 5 1 3 2 4 3 1 4 6 4 0 3 6 2 0 V stupn soubor bonifac.out: Odevzd v n e en Toto je praktick loha. Odevzd v te pouze zdrojov k d odlad n ho programu prost ednictv m webov ho rozhran. P-I-2 okol da Ma enka bude m t brzy narozeniny. Jej bratr Jen ek dlouho nemohl vymyslet, co by j jenom mohl k narozenin m d t { a kone n ve sv tajn skr i na p d objevil zbytek okol dy, kterou si tam kdysi ukryl. Pravda, my iu sivybralysvoji da, ale i tak z okol dy z stalo je t docela dost. D rav sti ol me, aby mu vznikla p kn tvercov tabulka, a tu hledn zabal. A zbytek samoz ejm sn. Sout n loha Je d n p vodn po et dk R a sloupc S, kter okol da kdysi m la. D le m me matici R S nul a jedni ek ur uj c, kter pol ka okol dy z stala cel. Zjist te, kolika r zn mi zp soby m e Jen ek uskute nit sv j pl n. Jin mi slovy e eno, spo tejte, kolika zp soby je mo n ve zbytku okol dy vyzna it tverec (libovoln velikosti) bez d r. V echny hrany tverce mus samoz ejm le et na hran ch pol ek. Stejn velk tverce le c na r zn ch sou adnic ch v tabulce okol dy pova ujeme za r zn e en. Form t vstupu Vstupn soubor se jmenuje cokolada.in. Najeho prvn m dku jsou dv cel cel sla R a S odd len mezerou (1 R S 2500). N sleduje R dk, v r-t m z nich jes mezerami odd len ch cel ch sel a r 1 ::: a r S. Je-li pol ko okol dy (r s) cel, je a r s = 1, jinak a r s =0. Matematika - fyzika - informatika 18 2008/2009 625

Pro 7 z 10 testovac ch vstup bude nav c platit R 500. Pro 5 z t chto 7 testovac ch vstup bude R S 100, a pro 3 z t chto 5 vstup bude R S 20. Form t v stupu V stupn soubor cokolada.out obsahuje jedin dek a na n m jedno cel slo { hledan po et tverc. P klad Vstupn soubor cokolada.in: V stupn soubor cokolada.out: 3 5 12 0 1 0 1 0 0 1 1 1 0 1 1 1 1 1 Na obr zku vpravo je nakreslena okol da popsan uk zkov m vstupem. edou barvou jsou vyzna ena pol ka, kter chyb j. tverec 1 1 na n m eme vyzna it deseti zp soby a tverec 22 dv ma, co je celkem 10 + 2= 12 zp sob. ; Odevzd v n e en Toto je praktick loha. Odevzd v te pouze zdrojov k d odlad n ho programu prost ednictv m webov ho rozhran. P-I-3 Kol Zl je ibaba dr v kleci Jen ka a Ma enku a sna se je vykrmit. Pr v pro n upekla plech je ibab ho kol e. Kol m tvar obd ln ka, cel je odpudiv a nav c je ozdoben ohavnou pe enou ropuchou. Proto e cokoliv je lep ne muset sn st tuto ropuchu, rozhodli se Jen ek s Ma enkou, e si z jeden kol e ud laj hru. Ma enka na n m l i kou nakreslila ry, m ho rozd lila na X Y stejn ch tverc. Cel ropucha sed na jednom z t chto tverc. Jen ek s Ma enkou se nyn budou pravideln st dat na tahu. Ten z nich, kdo je na tahu, si vybere n kterou z vyzna en ch ar a pod l 626 Matematika - fyzika - informatika 18 2008/2009

n kol roz zne na dv obd ln kov sti. N sledn sn tu st kol e, ve kter nen ropucha. Kdo bude na tahu vokam iku, kdy u z kol e zbude pouze posledn tverec s ropuchou, prohr l a mus ropuchu sn st. Prvn tah prov d Ma enka. ; Sout n loha Jsou d ny rozm ry kol e X, Y a sou adnice r x, r y lev ho doln ho rohu tverce, v n m je ropucha. a) (2 body) Rozhodn te, kdo zv t z v situaci zn zorn n na obr zku { tedy pro (X Y ) = (9 5) a (r x r y ) = (5 3) { a popi te jednu mo nou strategii, kter mu zabezpe v hru. b) (8 bod ) Popi te co nejefektivn j algoritmus, kter pro dan hodnoty X, Y, r x a r y zjist, kter z d t hru vyhraje, jestli e budou ob hr t optim ln. P klady Vstup: 8 1 1 0 ; V prvn m tahu Ma enka provede ez po p mce x =3. Zbude ropucha a okolo n z ka d strany jeden tverec. Jen ek sn jeden z nich, Ma enka druh, a Jen kovi z stane ropucha. Matematika - fyzika - informatika 18 2008/2009 627

Vstup: 5 3 1 2 ; V druh m p kladu vyhraje Jen ek. Odevzd v n e en Toto je teoretick loha. e en odevzdejte ve form tu PDF prost ednictv m webov ho rozhran, nebo ho za lete po tou na adresu uvedenou v vodu. P-I-4 Po ta Kvak V leto n m ro n ku olympi dy se budeme setk vat se speci ln m po- ta em nazvan m Kvak. Ve studijn m textu uveden m za zad n m t to lohy je pops no, jak po ta Kvak funguje a jak se programuje. Sout n loha a) (3 body) V rou e po ta e je jedno slo. Napi te program pro Kvak, kter vyp e 1, jestli e je to prvo slo, zat mco v opa n m p pad vyp e 0. Pln po et bod dostanete za libovoln e en, kter bude m t m n ne 100 p kaz a pro libovoln vstup vykon m n ne 10 000 krok. b) (4 body) V rou e po ta e je posloupnost kladn ch sel. D lka t to posloupnosti je men ne 65 000. Napi te program pro Kvak, kter tuto d lku spo t a vyp e. Pln po et bod dostanete za e en, kter bude m t line rn asovou slo itost. c) (3 body) Po ta Kvak se n m po kodil, tak e dok e prov st p kaz put pouze desetkr t a pot se denitivn zastav. V echny ostatn p kazy prov d po ta bez probl m. 628 Matematika - fyzika - informatika 18 2008/2009

V rou e po ta e je nepr zdn posloupnost sel. Je mo n napsat program pro takto po kozen Kvak, kter bez ohledu na d lku vstupn posloupnosti spo t a vyp e jej maximum? Jestli e ano, napi te takov program. V opa n m p pad doka te, e to nen mo n. Interpret Na webov str nce olympi dy budete m t k dispozici interpret program pro po ta Kvak, abyste si mohli svoje e en otestovat. (Interpret zve ejn me nejpozd ji m s c p ed term nem odevzd n e en dom c ho kola.) Odevzd v n e en Toto je teoretick loha. e en odevzdejte ve form tu PDF prost ednictv m webov ho rozhran, nebo ho za lete po tou na adresu uvedenou v vodu. Studijn text V leto n m ro n ku olympi dy se budeme setk vat se speci ln m po ta em zvan m Kvak. Jedin datov typ, se kter m Kvak pracuje, se naz v number, co je cel slo z rozsahu od0do65535v etn. ) V echny matematick v po ty prov d Kvak modulo 65 536, tak e nap klad hodnotou v razu 65530 + 10 je 4. Kvak pou v 26 prom nn ch, kter naz v me registry. Registry jsou ozna enyp smeny a a z avka d m z nichm e b t ulo ena jedna hodnota typu number. Na za tku v po tu jsou ve v ech registrech nuly. Krom registr m Kvak je t jednu jednosm rnou rouru neomezen d lky, do kter se mohu ukl dat hodnoty typu number. Je to jedin datov struktura, kterou Kvak pou v. S rourou lze prov d t dv operace: vlo it do n slo z registru X p kazem put X, z opa n ho konce roury odebrat slo a ulo it ho do registru X p kazem get X. sla se v rou e po ta e nemohou p edb hat, Kvak je tedy bude odeb rat ve stejn m po ad, v jak m je do roury vlo il. ) Roura m neomezenou kapacitu, lze do n vlo it libovoln mno stv sel. Nen -li e eno jinak, roura je na za tku v po tu pr zdn. ) 65 535 = 2 16 ; 1, typ number je tedy p esn to, co zn te jako 16-bitov cel slo bez znam nka. ) Takovou datovou strukturu obvykle naz v me fronta. Matematika - fyzika - informatika 18 2008/2009 629

Po ta Kvak m tak mo nost vypisovat sla (v sledky v po tu) na v stup. P kazy V n sleduj c tabulce jsou shrnuty v echny p kazy, kter Kvak um prov d t a kter tedy m ete pou vat v programech. p kaz v znam p kazu get X Kvak odebere jedno slo z roury a ulo ho do registru X. put X Kvak vlo do roury slo z registru X. put slo Kvak vlo dan slo do roury. print Kvak odebere jedno slo z roury a vyp e ho na v stup. add sub mul div mod label L jump L jz X L jeq X Y L jgt X Y L jempty L stop s t n : Kvak odebere dv sla z roury a vlo do roury jejich sou et. od t n : Kvak odebere dv sla z roury a vlo do roury jejich rozd l (prvn minus druh ). n soben : Kvak odebere dv sla z roury a vlo do roury jejich sou in. d len : Kvak odebere dv sla z roury a vlo do roury celou st jejich pod lu (prvn lomeno druh ). zbytek: Kvak odebere dv sla z roury a vlo do roury zbytek, kter d prvn z nich po celo seln m d len druh m. n v st : Toto m sto v programu dostane ozna en L (kde L m e b t libovoln et zec). Stejn n v st nesm b t v programu v cekr t. skok: Kvak bude pokra ovat v prov d n programu od m sta, kter m ozna en L. skok jestli e nula: Je-li v registru X nula, Kvak provede p kaz jump L. skok jestli e se rovnaj : Je-li v registrech X a Y stejn hodnota, Kvak provede p kaz jump L. skok jestli e je v t : Je-li v registru X v t hodnota ne v registru Y,Kvak provede p kaz jump L. skok jestli e je pr zdn : Nen -li v rou e dn slo, Kvak provede p kaz jump L. konec: Kvak ukon sv j v po et. 630 Matematika - fyzika - informatika 18 2008/2009

Pokud se b hem v po tu stane, e se pokus me odebrat slo z roury po- ta e a roura p itom bude pr zdn, nastane chyba. Chyba nastane tak tehdy, kdy se pokus me d lit nulou, po tat zbytek po d len nulou, nebo sko it na neexistuj c m sto v programu. Dojde-li v po et programu na konec, Kvak po proveden posledn ho p kazu korektn skon (jako kdyby na konci programu byl je t p kaz stop.) V z pisu programu m eme ps t v ce p kaz na jeden dek, v takov m p pad je od sebe odd lujeme st edn kem. P klad 1 N sleduj c program spo t a vyp e sou et v ech selod1do20. put 20 put 0 label start get a jz a end put a put a put 1 add sub get b put b jump start label end print Poka d, kdy se Kvak p i prov d n programu dostane ke t et mu dku (label start), budou v rou e pr v dv sla. Jestli e prvn z nich ozna- me N, hodnota druh ho bude rovna sou tu S =(N +1)++ 20. Pot na teme N do registru a. Je-li N = 0, m me v rou e hledan sou et,m - eme ho vypsat na v stup a skon it. V opa n m p pad chceme prov st dv v ci: P i st N k dosud z skan mu sou tu, a n sledn N zmen it o 1. Po proveden dku est (t i p kazy put) m me v rou e postupn sla: S, N, N, 1.P kaz add se te prvn dv, po jeho proveden bude v rou e trojice sel N, 1,N + S. Po vykon n dal ho p kazu sub budou v rou e hodnoty N + S a N ; 1. To u je t m to, co pot ebujeme, jenom v opa n m po ad. Proto prvn z nich na teme do registru b aznovu vlo me do roury. Matematika - fyzika - informatika 18 2008/2009 631

P klad 2 V rou e je nepr zdn posloupnost sel. Nap eme program, kter spo t a vyp e na v stup jejich sou et. (P esn ji, jeho zbytek po d len 65 536.) Budeme st le opakovat n sleduj c postup: Zjist me, zda jsou v rou e aspo dv sla. Jestli e ano, n kter dv z nich se teme a nahrad me je jejich sou tem. Pokud tam u dv sla nejsou, z stalo tam tady u jenom jedin a to zjevn sou tem v ech p vodn ch sel. V programu pro po ta Kvak m eme tuto my lenku implementovat nap klad n sledovn : label cyklus get a jempty konec put a add jump cyklus label konec put a print Na za tku ka d iterace odebereme z roury jedno slo a vlo me ho do registru a. Pokud se t m roura vypr zdnila, m me v registru a hledan sou et, sta ho u jenom vypsat. Pokud ne, slo z registru a vr t me zp t do roury. Vtomokam iku jsou v rou e alespo dv sla a m eme tedy bez obav prov st p kaz add. asov slo itost tohoto e en je line rn vzhledem k po tu sel, kter byla na za tku v po tu v rou e. Ka d iterace cyklu toti prov d jen konstantn po et p kaz a zmen n m o jedno po et sel v rou e. 632 Matematika - fyzika - informatika 18 2008/2009