K S P Korešpondenčný seminár z programovania XXXIV. ročník, 2016/17 Katedra základov a vyučovania informatiky FMFI UK, Mlynská Dolina, Bratisla

Podobné dokumenty
Microsoft Word - 6 Výrazy a vzorce.doc

Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

Microsoft Word - Zaver.pisomka_januar2010.doc

SK MATEMATICKA OLYMPIADA 2010/ ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak,

Microsoft Word - skripta3b.doc

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

SK MATEMATICKÁOLYMPIÁDA skmo.sk 2009/ ročník MO Riešenia úloh česko-poľsko-slovenského stretnutia 1. Určte všetky trojice (a, b, c) kladných r

K S P Korešpondenčný seminár z programovania XXXIV. ročník, 2016/17 Katedra základov a vyučovania informatiky FMFI UK, Mlynská Dolina, Bratisla

1)

Paralelné algoritmy, cast c. 2

Republika Srbsko MINISTERSTVO OSVETY, VEDY A TECHNOLOGICKÉHO ROZVOJA ÚSTAV PRE HODNOTENIE KVALITY VZDELÁVANIA A VÝCHOVY VOJVODINSKÝ PEDAGOGICKÝ ÚSTAV

Metódy násobenie v stredoveku

Microsoft Word - Príloha P2 - zadania pracovných listov pre 6. ročník

SK MATEMATICKÁOLYMPIÁDA skmo.sk 64. ročník Matematickej olympiády 2014/2015 Riešenia úloh domáceho kola kategórie Z8 1. Písmenkový logik je hra pre dv

Informačné technológie

8 Cvičenie 1.1 Dokážte, že pre ľubovoľné body X, Y, Z platí X + Y Z = Z + Y X. 1.2 Dokážte, že pre ľubovoľné body A, B, D, E, F, G afinného priestoru

Pokrocilé programovanie II - Nelineárne iteracné schémy, chaos, fraktály

N desitka.indd

(ıkolské kolo-PYT)

Titulná strana Arial 30 bodov

Microsoft Word - Diskusia11.doc

Identifikačný štítok TIMSS & PIRLS 2011 Dotazník pre žiaka 4. ročník Národný ústav certifikovaných meraní vzdelávania Pluhová 8, Bratislava IEA

Paralelné algoritmy, cast c. 3

1 Rekurencie este raz riesenia niektorych rekurencii z cvik. mame danu rekurenciu napr T (n) = at ( n b ) + k. idea postupu je postupne rozpisovat cle

Operačná analýza 2

Microsoft Word - prirucka_katedry_nova

Inteligentné rozhodovacie systémy Heuristické prehľadávanie SP Október, 2018 Katedra kybernetiky

prijimacky 2014 MAT 4rocne ver A.doc

Univerzita Komenského v Bratislave Fakulta matematiky, fyziky a informatiky Ročníkový projekt (1) Herňa Študijný odbor: Aplikovaná informatika Autor :

Microsoft Word - mnohouholnik.doc

Klasická metóda CPM

(Manu\341l)

Olympiáda v informatike ročník (2018/2019) zadania krajského kola kategória A Priebeh krajského kola Krajské kolo 34. ročníka Olympi

Úlohy o veľkých číslach 6. Deliteľnosť In: Ivan Korec (author): Úlohy o veľkých číslach. (Slovak). Praha: Mladá fronta, pp Persistent UR

Milé študentky, milí študenti, v prvom rade vám ďakujeme za vyplnenie ankety. Táto anketa bola zameraná na zistenie vášho postoja ku kvalite výučby. J

The Mind Staňme sa jednotným celkom! Wolfgang Warsch Hráči: 2-4 osôb Vek: od 8 rokov Trvanie: cca 15 minút Všetci hráči tvoria jeden tím. V prvom kole

ALBATROS_MEDIA

Pokrocilé programovanie XI - Diagonalizácia matíc

Microsoft Word - Argumentation_presentation.doc

Cvičenie 9 Riešené príklady 1. Príklad min f(x 1, x 2 ) = x x x 1 s.t. x 1 80 x 1 + x Pre riešenie úlohy vykonáme nasledujúce kroky

Úvodná prednáška z RaL

Relačné a logické bázy dát

Teória pravdepodobnosti Zákony velkých císel

Zeszyty Naukowe PWSZ, Nowy Sącz 2013 Konštrukcie magických obdĺžnikov Marián Trenkler Faculty of Education, Catholic University in Ružomberok Hrabovsk

Fotonávod na vymeranie a objednanie horizontálnej žalúzie na retiazku 1. Vymeranie šírky a výšky horizontálnej žalúzie na retiazku - vymeranie sa vyko

SK MATEMATICKÁOLYMPIÁDA skmo.sk 63. ročník Matematickej olympiády 2013/2014 Riešenia úloh česko-poľsko-slovenského stretnutia 1. Dokážte, že kladné re

M59dkZ9ri10

Microsoft Word - INFORMACIA A PROPAGACIA PRE BENEFICIENTOV SK_sk1.doc

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

Stredné odborné učilište, Tovarnícka 1609, Topoľčany

2_detsky pesibus v Novakoch_Putiska Ivan

Aplikace matematiky- záverečná práca Juraj Bodík 28. septembra 2017 Definície Žena - objekt ohodnotený celým číslom. Každé dve ženy sa dajú porovnat a

Pokrocilé spracovanie obrazu - Fourierová transformácia

Paralelné algoritmy, cast c. 3

GPH MIchalovce

Ako vybrať hliníkové disky (elektróny)

Microsoft Word - typ_S_1_Priklad.doc

Microsoft Word - MAT_2018_1 kolo.docx

Čísla Nájdite všetky dvojice prirodzených čísiel, ktoré vyhovujú rovnici: 2 ( a+ b) ( a b) + 2b ( a+ 2b) 2b = 49 RIEŠENIE ( ) ( ) ( ) 2 a+ b a

Ģˇ

MERANIE U a I.doc

PowerPoint Presentation

trafo

Identity Lifecycle Management

Letné aktivity 2019 Motto letných aktivít : Čo môžem urobiť ja, aby som pretváral svet okolo seba? Júl 2019 Prvý týždeň: prihlasovanie sa na

SpelwerkAad.fm

Microsoft Word - Final_test_2008.doc

tv2go_pouzivatelska_prirucka

velryby2_pravidla_FINAL_SK-tisk.indd

SK MATEMATICKÁOLYMPIÁDA skmo.sk 66. ročník Matematickej olympiády 2016/2017 Riešenia úloh domáceho kola kategórie Z9 1. Vo všetkých deviatich políčkac

Ďalšie vlastnosti goniometrických funkcií

MEN Kvapka informácií pre chlapcov

(Microsoft PowerPoint - TESCO - v\341\232 partner pre praktick\351 vyu\350ovanie.ppt)

ECLECTIC BORŠA HCP DAY 2019 Propozície V Hrubej Borši, , ŠTK GKBO

Metrické konštrukcie elipsy Soňa Kudličková, Alžbeta Mackovová Elipsu, ako regulárnu kužeľosečku, môžeme študovať synteticky (konštrukcie bodov elipsy

Microsoft Word - Priloha_1.docx

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

Olympiáda v informatike ročník (2012/2013) zadania domáceho kola kategórie A a B Informácie a pravidlá Pre koho je súťaž určená? Kat

Podvojné účtovníctvo, fakturácia a sklad Evidencia a zápočet daňovej licencie v DPPO 2018 Od je daňová licencia zrušená. Podľa prechodného us

Úvod do lineárnej algebry Monika Molnárová Prednášky 2006

Rozvojom spoločnosti najmä v druhej polovici minulého storočia dochádza čím ďalej tým viac k zásahu človeka do životného prostredia

Súkromná stredná odborná škola technická, Dr. Janského 10, Žiar nad Hronom Odbory otvárané v školskom roku 2017/18 a kritériá prijímania do týc

Informačná a modelová podpora pre kvantifikáciu prvkov daňovej sústavy SR

1

Stredné odborné učilište, Tovarnícka 1609, Topoľčany

30435_M_Pracovny.indd

Preco kocka stací? - o tom, ako sú rozdelené vlastné hodnoty laplasiánu v limite, ked sú velké

Programátorské etudy - Pascal

Gymnázium, Konštantínova 1751/64, Stropkov K r i t é r i á prijímacieho konania do 1. ročníka štvorročného študijného odboru 7902 J gymnázium p

TestForm602.fo

FAQ

untitled

Obsah: 1. Registrácia do aplikácie Živá lúka online 2. Prihlásenie sa do aplikácie Živá lúka online 3. Všeobecné poznámky k mapovému podkladu 5. Rola:

--1/7-- ZŠ Scratch III 10/20 UK M. Tomcsányiová verzia HRA NIM 13 Oblasť informatiky / Téma Algoritmické riešenie problémov / Hra NIM 13 I

Aplikácie ekonomickej a finančnej matematiky

STREDNÁ ODBORNÁ ŠKOLA POLYTECHNICKÁ Sládkovičova ulica Ruţomberok K r i t é r i á p r i j í m a c i e h o k o n a n i a do nadstavbové štúd

Katalóg cieľových požiadaviek k maturitnej skúške

1 Portál pre odborné publikovanie ISSN Heuristický adaptívny PSD regulátor založený na miere kmitavosti Šlezárová Alexandra Elektrotechnika

bulletin Volím zo zahrani<010D>ia 2015_ver5.indd

Prepis:

K S P Korešpondenčný seminár z programovania XXXIV. ročník, 26/7 Katedra základov a vyučovania informatiky FMFI UK, Mlynská Dolina, 842 48 Bratislava Úlohy. kola letnej časti, kategória T Termín odoslania riešení tejto série je pondelok 5. júna 27.. Trikrát bola párty kat. T; b za popis, 2 b za program Tina rada organizuje párty pre svojich spolužiakov. Zorganizovať dobrú párty však nie je len tak. Medzi jej spolužiakmi panujú rôzne vzťahy. Napríklad Miro teraz strašne letí na Zuzu. Ak Tina pozve na párty Zuzu, určite musí pozvať aj Mira, inak by jej to do smrti vyčítal. No a Zuza sa minule strašne pohádala s Helou, a tak ak Tina pozve jednu z nich, určite nechce pozvať zároveň aj tú druhú. A tak ďalej. Keď si tak Tina spísala všetky požiadavky koho môže a nemôže pozvať, zistila, že existujú presne tri možnosti, akú množinu spolužiakov na párty pozvať. Zorganizovala preto postupne tri párty jednu pre každú možnosť. Tina ti dala pre každú párty zoznam ľudí, ktorí sa jej zúčastnili. Nájdi jednu možnosť toho, ako vyzerajú vzťahy medzi ľuďmi v triede. Ľudí v triede si očíslujeme od po n. Budeme uvažovať len jeden typ podmienok: implikácie. Každá podmienka má teda tvar ak (niekto je alebo nie je na párty) tak (niekto musí alebo nesmie byť na párty). To, že človek x je/musí byť na párty, v podmienke zapíšeme +x. To, že tam nie je/nesmie byť, zapíšeme x. Na e sú dané tri množiny ľudí, ktoré boli na párty. Zostrojte konkrétnu sadu implikácií, pre ktorú bude platiť, že existujú presne tri spôsoby, ako ich všetky naraz splniť, a tieto tri spôsoby zodpovedajú daným trom množinám ľudí. V prvom riadku u je číslo n: počet ľudí v triede. Zvyšok u tvoria tri riadky. V každom riadku je n núl alebo jednotiek: postupne od človeka po človeka n je tam ak na párty nebol, a ak na nej bol. Vstupom môžu byť ľubovoľné tri n-tice núl a jednotiek. Nie je teda zaručené, že hľadaná sada implikácií musí existovať. Je päť sád ov. Postupne majú maximálnu hodnotu n rovnú 3, 5,, 2 a 5. Ak neexistuje žiadna sada implikácií s požadovanou vlastnosťou, vypíšte jeden riadok a v ňom číslo. Ak existujú nejaké vyhovujúce sady implikácií, nájdite nejakú dostatočne malú. Presnejšie, sada, ktorú vypíšete, musí mať nanajvýš 47 implikácií. Vypíšte ju v nasledovnom formáte: najskôr riadok obsahujúci číslo p udávajúce počet implikácií, potom p riadkov a v každom z nich implikácia tvaru ak [cislo] tak [cislo]. (Je zaručené, že ak existuje nejaká sada implikácií, existuje aj dostatočne malá sada.) 3 ak + tak -2 ak +3 tak + ak +3 tak +2 Tina má troch kamarátov. Nazvime ich Anka (), Boris (2) a Cecil (3). Na prvej párty nebol nik z nich. Na druhej bol len Boris. Na tretej bola len Anka. Ako môže vyzerať sada implikácií, pre ktorú sú toto jediné tri možnosti, koho pozvať? Existuje veľa možností. Tá uvedená v príklade u má nasledujúci význam: Ak Tina pozve Anku, nesmie pozvať Borisa. Ak pozve Cecila, musí pozvať Anku aj Borisa. strana z 8 http://ksp.sk/

Logicky si odvoďme, koho môže Tina pozvať pre túto sadu implikácií. Ak by pozvala Cecila, tak z druhej a tretej implikácie musí pozvať aj zvyšných dvoch, to však spôsobí spor s prvou implikáciou. Preto Cecil má smolu a na žiadnej párty nebude. Do úvahy tiež nepripadá párty, na ktorej sú Anka s Borisom opäť pre spor s prvou implikáciou. No a ľahko overíme, že už ostali len tie tri možnosti, ktoré boli zadané na e, a že žiadna z nich k sporu nevedie. Existujú aj iné správne riešenia. Mohli sme napríklad použiť aj implikáciu ak +3 tak -3, z ktorej by tiež vyplývalo, že Cecil na žiadnu párty nesmie. 4 - Neexistuje sada implikácií, pre ktorú by boli prípustné len tieto tri zloženia účastníkov párty a žiadne iné. 2. Totálny zabiják kat. T; b za popis, 2 b za program Nebolo to tak dávno, čo bol náš Emko totálny šialený zabiják. Kežďe bola doba ťažká, jediný zamestnávateľ ochotný zamestnať ho bola Korporátna spoločnosť pseudomafiánov. Tí mali n nepriateľov, ktorých sa potrebovali zbaviť. Emko ale nebol žiadny lacný chlap, a tak si za odstránenie každého z nepriateľov účtoval nie nutne rôzne sumy. Spoločnosť má momentálne obmedzené financie, a tak vie zaplatiť odstránenie len niekoľkých nepriateľov. Pre spoločnosť majú nepriatelia iné hodnoty, ako pre Emka, a ešte neživoria, preto nie je najlacnejšie riešenie nutne najlepšie. Potrebovali by teda vedieť k najmenších účtov, aké vie Emko vystaviť. Potom už ľahko vyberú najlepšiu variantu pre získanie vlády nad svetom. Keďže ale Emko nepatrí ku najchytrejším a na pohovore mu namerali IQ rovné celých 26, je občas ochotný spoločnosti zaplatiť za objednávku. Teda spoločnosť vie dokonca okrem získania vlády občas aj zbohatnúť. Podieľajte sa na tejto akcii a buďte pri koryte aj VY. Pomôžte spoločnosti zistiť k najmenších účtov, aké nám vie Emko dať. Máte zadaných n čísiel: ceny, za ktoré je Emko ochotný odstrániť jednotlivých nepriateľov. Zistite hodnoty k najmenších neprázdnych rôznych účtov, ktoré môže Emko vystaviť. Každý účet je určený zoznamom nepriateľov, ktorých chceme odstrániť, a jeho hodnota je súčet cien týchto nepriateľov. Účty sú rôzne, ak zoznam ľudí na nich nie je identický. Na prvom riadku u sa nachádzajú dve čísla oddelené medzerou, a to n 2 a k min(2 n, 2 ). Na druhom riadku bude n medzerou oddelených čísel a i ( a i 9 ), a to je cena, za ktorú je Emko ochotný odstrániť i-teho nepriateľa. Sú štyri sady ov, s takýmito obmedzeniami: číslo sady 2 3 4 n 2 k 23 2 2 2 Na vypíšte k riadkov, a to hodnoty k najmenších možných účtov usporiadaných od najmenšieho. Na každom riadku vypíšte jednu hodnotu. http://ksp.sk/ strana 2 z 8

2 3-3 7 - - - - 3. Triviálna interaktívna úloha kat. T; b za popis, 2 b za program Na pondelňajší krúžok matematiky nikto okrem vás a učiteľky neprišiel, lebo všetci sú na lyžiarskom zájazde. Učiteľka sa preto rozhodla hodinu spraviť trochu interaktívnejšou, nakoľko sa nemusí venovať desiatim študentom naraz. Na začiatku si učiteľka tajne zvolí dve celé čísla: modulus m ( m) a stav x ( x < m). Vašou úlohou je tieto dve čísla uhádnuť pomocou niekoľkých otázok. Učiteľka vám na začiatku oznámi, že modulus je najviac n, a že sa môžete spýtať najviac q otázok. Každá otázka vyzerá nasledovne: Vy si zvolíte jedno celé číslo a ( a n). Učiteľka zoberie aktuálny stav x i a vypočíta z neho nový stav x i+ použitím nasledovného vzorca: x i+ = (x i +a) mod m. Vám však nič z toho neukáže. Jediné, čo vám na konci oznámi, je, či je nový stav menší, rovnaký, alebo väčší ako predchádzajúci stav. Kedykoľvek môžete skúsiť uhádnuť m a x, najneskôr ale po q otázkach. Môžete hádať iba raz. Na začiatku dostanete celé číslo t: koľkokrát sa s vami bude učiteľka hrať (ak ju v predchádzajúcich hrách nesklamete). Na začiatku každej hry dostanete celé čísla n a q. Po každej vašej otázke dostanete na samostatný riadok odpoveď: > ak sa stav zväčšil, = ak je rovnaký, a < ak sa zmenšil. Každú otázku píšte do samostatného riadku, a musí pozostávať z jedného celého čísla a ( a n). Váš tip tiež vypíšte do samostatného riadku v tvare m x. Obmedzenia Je päť testovacích sád, s nasledujúcimi obmedzeniami: Sada 2 3 4 5 t 2 6 2 2 n 63 25 9 8 q 26 25 2 3 2 6 2 Poznámky Nezabudnite po každej vašej otázke alebo tipe flush-núť, aby sa hneď odoslal testovaču. (cout.flush() v C++, fflush(stdio) v C, sys.stdout.flush() pre Python, a System.out.flush() v Jave.) Keď váš program zo u prečíta EOF (čiže keď sa mu nepodarí načítať nejaký údaj), váš program by mal strana 3 z 8 http://ksp.sk/

hneď skončiť. Toto môže nastať napríklad vtedy, keď ste v práve skončenej hre zle odpovedali. Teraz čakáte ďalšie n a q, na e vám však už žiadne údaje neprídu. Ak bude váš program naďalej bežať a pokúšať sa komunikovať, môže sa stať, že namiesto WA dostanete EXC, TLE, alebo iné zveriny. 2 2 9 < > < 9 2 4. Turnaj Veľkých Šachistov kat. T; b za popis, 2 b za program V Slovakistane sa pred rokom rozhodli osadníci usporiadať národný šachový turnaj. Za prvé miesto sa dal získať diplom, a tak všetci hrali ako o život. Keďže sa však nehralo na čas, vyskytol sa problém hráči nechceli priznať prehru. Stále len tvrdili, že určite nemajú mat, však určite sa z tej situácie dá nejak dostať, keby len mali ešte chvíľku na rozmýšlanie... A možno ešte jednu... Osadníci si teda na pomoc zavolali šikovných programátorov, ktorí ich problém vyriešili. Tento rok osadníci plánujú usporiadať národný šachový turnaj zas. Samozrejme, tohtoročný turnaj musí byť lepší, napínavejší, veľkolepejší a hlavne väčší. Preto sa tento rok nebude na turnaji hrať šach na obyčajných šachovniciach rozmerov 8 8, ale na šachovniciach n n, a to s f figúrkami. S týmto je však problém programy šikovných programátorov totiž na takýchto veľkých šachovniciach už nestíhajú rozhodnúť, či má niektorý z hráčov šach alebo mat. Osadníci Slovakistanu teda opäť potrebujú pomoc! Pre daný popis šachovnice rozlíšte, či má niektorý z hráčov šach alebo mat. Pritom berte do úvahy len obyčajné pohyby figúrok (komplikované ťahy ako rošáda, en passant, pohyb pešiakom o dva políčka vpred a povýšenie pešiaka sa v Slovakistane neakceptujú). Ak má práve jeden z hráčov šach, zistite tiež, koľko má platných ťahov (po ktorom už jeho kráľ nebude ohrozený). V prvom riadku je číslo t 3, udávajúce počet šachovníc na e. Nasleduje t popisov šachovníc. Popis šachovnice začína jedným riadkom s číslami 2 n, f : dĺžka strany šachovnice a počet figúrok na nej. Nasleduje f riadkov, každý popisujúci jednu figúrku súradnicami políčka na ktorom stojí x i a y i, a jej typom z i. Políčko v ľavom hornom rohu má súradnice (, ) a v pravom dolnom rohu (n, n). Znak z i je písmeno označujúce typ figúrky; Každé z i je jedno z písmen KQRBHP, reprezentujúce v tomto poradí kráľa, kráľovnú, vežu, strelca, koňa, a pešiaka. Bielemu hráčovi patrí horná strana šachovnice (menšie y i ) a jeho figúrky sú označené malými písmenami. Teda bieli pešiaci sa pohybujú v kladnom smere y i. Čiernemu hráčovi patrí dolná strana šachovnice a jeho figúrky sú označené veľkými písmenami. Jeho pešiaci sa pohybujú v zápornom smere y i. Za každým popisom šachovnice je jeden prázdny riadok. Platí x i, y i n; žiadne dve figúrky nestoja na rovnakom políčku, a na každej šachovnici je práve jeden biely kráľ k a jeden čierny kráľ K. Nakoniec môžete predpokladať, že y sú rozumné, teda v každom e súčet n, f 2. V prvej sade n = 8. Pre každú šachovnicu vypíšte jeden riadok s jednou z nasledovných hlášok: http://ksp.sk/ strana 4 z 8

ˆ Neutralna situacia., ak žiaden z kráľov nie je ohrozený nepriateľskou figúrkou. ˆ Nemozna situacia., ak sú obaja králi ohrození nepriateľskou figúrkou. ˆ {farba} hrac ma sach. Ma x platnych tahov., kde {farba} je Biely, resp. Cierny, ak je kráľ tohto hráča v ohrození, ale existuje x platných ťahov niektorými jeho figúrkami takých, po ktorom už v ohrození nebude. ˆ {farba} hrac ma mat., kde {farba} je Biely, resp. Cierny, ak je kráľ tohto hráča v ohrození, a neexistuje platný ťah niektorou z jeho figúrok taký, po ktorom už v ohrození nebude. 3 8 4 5 k 4 3 H 4 5 h 5 7 K 8 4 5 2 h 3 3 k 6 4 H 4 5 K 8 6 k 4 H 4 2 H 2 3 H 3 3 H 7 6 K Nemozna situacia. Neutralna situacia. Biely hrac ma mat. strana 5 z 8 http://ksp.sk/

4 8 7 k 4 H 4 2 H 2 3 H 3 3 H 7 6 K 2 7 r 8 9 K 7 R 8 r 2 R 3 2 h 8 2 r 5 r 2 5 r 6 6 k 8 6 k 8 2 R 4 4 B 2 5 R 7 6 K 3 7 q 8 9 3 2 P 4 2 P 5 2 P 3 3 P 4 3 k 5 3 P 4 4 P 5 4 p 4 5 K Biely hrac ma sach. Ma platnych tahov. Cierny hrac ma mat. Biely hrac ma sach. Ma platnych tahov. Cierny hrac ma sach. Ma 5 platnych tahov. 5. Tam, kde žijú algoritmy... kat. T; b za popis, 2 b za program Bol raz jeden algoritmus, ktorého každodennou prácou bolo hľadanie najdlhšej cesty v strome s vrcholmi od po n. Jeho metóda bola nasledovná:. Strom si zakoreníme za vrchol s najmenším číslom. 2. Pre každého syna koreňa nájdeme najdlhšiu cestu, ktorej jeden koniec je samotný syn, a druhý koniec je v jeho podstrome. To spravíme obyčajným prehľadávaním do šírky. 3. Vyberieme dvoch synov s najdlhšími cestami. Keď tieto dve cesty prepojíme cez koreň, dostaneme najdlhšiu cestu prechádzajúcu koreňom. 4. Ešte sme ale nebrali do úvahy cesty, ktoré koreňom vôbec neprechádzajú. Každá taká cesta ale leží celá v podstrome niektorého syna. Stačí preto rekurzívne vyriešiť tieto podstromy zakoreníme ich, spočítame pre synov koreňa najdlhšie cesty,... http://ksp.sk/ strana 6 z 8

Kolega programátor mu poradil, že ak by za koreň vždy zvolil centroid (pod)stromu, tak by mal oveľa viac voľného času, lebo by vraj bežal v čase O(n log n) namiesto O(n 2 ). Algoritmus sa nad tým zamyslel, a všimol si, že jeden strom môže mať viac ako jeden centroid. V takých prípadoch by sa musel rozhodnúť, ktorý z centroidov vybrať. S tým sa mu ale nechce otravovať. Zaujíma ho preto, koľko stromov s n vrcholmi je takých, že práca na ňom podľa nového postupu bude čisto manuálna, a nebude musieť počas nej robiť žiadne rozhodnutia. Strom je ľahký, ak má práve jeden centroid, a jeho odobratím sa strom rozpadne na niekoľko ľahkých stromov. Pre zadaný počet vrcholov n zistite, koľko rôznych stromov s n vrcholmi je ľahkých. (Dva stromy považujeme za rôzne, ak existujú vrcholy u, v, ktoré sú hranou spojené v prvom strome, ale nie v druhom.) Toto číslo môže byť veľké, vypíšte preto jeho zvyšok po delení prvočíslom p. Na jedinom riadku u sú dve celé čísla n, p oddelené medzerou. n udáva počet vrcholov a p je prvočíslo, po delení ktorým berieme zvyšok. Je päť testovacích sád. Vo všetkých platí n 3, a n < p 9. Pre jednotlivé sady máme nasledovné obmedzenia: číslo sady 2 3 4 5 n 9 5 3 Na jediný riadok u vypíšte jedno celé číslo z {,,..., p } počet vyhovujúcich stromov s n vrcholmi, modulo p. 2 3 Pre n = 2 existuje iba jeden strom: Tento strom nevyhovuje, nakoľko v prvom kroku môžeme za koreň zvoliť aj vrchol, aj 2. 4 3 Pre n = 4 máme tieto štyri vyhovujúce stromy: 4 taký vrchol v strome, ktorého každý syn má podstrom obsahujúci nanajvýš polovicu všetkých vrcholov strana 7 z 8 http://ksp.sk/

Príklad nevyhovujúceho stromu je nakoľko môžeme v prvom kroku zvoliť za koreň 2 aj 3. http://ksp.sk/ strana 8 z 8