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] =

Podobné dokumenty
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

Algoritmizace a programování

4.3 Operace nad ordin ln mi datov mi typy Operace nad logick m datov m typem Operace nad celo seln mi datov mi typy

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)

Algoritmizace a programování

27/2016 Sb. VYHLÁŠKA ČÁST PRVNÍ ÚVODNÍ USTANOVENÍ ČÁST DRUHÁ

3. NEZAMĚSTNANOST A VOLNÁ PRACOVNÍ MÍSTA

Směrnice k Pravidlům hry ICCF Turnaje jednotlivců a družstev (platné od )

Sbírka zákonů ČR Předpis č. 27/2016 Sb.

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

Číslicová technika 3 učební texty (SPŠ Zlín) str.: - 1 -

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

Preference v u ívání prost edk elektronické komunikace áky a studenty

SBÍRKA ZÁKONŮ. Ročník 2016 ČESKÁ REPUBLIKA. Částka 10 Rozeslána dne 28. ledna 2016 Cena Kč 210, O B S A H :

STUDNY a jejich právní náležitosti.

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

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

METODICKÉ DOPORUČENÍ Ministerstva vnitra. ze dne 17. prosince 2015

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

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

ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE

Příloha č. 3 VÝKONOVÉ UKAZATELE

while A[I]<>0 do Dec(I) WriteLn('V[',I,']=',J) for K:=N downto I do Dec(A[K]) end ReadLn end. e itel A vyu v toho, e nejvy m lov kem v z stupu je ten,

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

Zadání. Založení projektu

PRAVIDLA PRO PRODEJ BYTŮ A NEBYTOVÝCH PROSTOR V MAJETKU MĚSTA VRBNO POD PRADĚDEM

Příručka pro zadavatele E-ZAK krok za krokem

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

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

ZLATO ELFŮ. od Alana R. Moona

Novinky verzí SKLADNÍK 4.24 a 4.25

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

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

DAŇ Z PŘÍJMŮ FYZICKÝCH OSOB

statutární město Děčín podlimitní veřejná zakázka na služby: Tlumočení a překlady dokumentů

Základní škola a Mateřská škola Bílovec, Komenského 701/3, příspěvková organizace. Dopravní výchova

1 METODICKÉ POKYNY AD HOC MODUL 2007: Pracovní úrazy a zdravotní problémy související se zaměstnáním

Společné stanovisko GFŘ a MZ ke změně sazeb DPH na zdravotnické prostředky od

ZKUŠEBNÍ ŘÁD PRO ZKOUŠKY TERIÉRŮ A JEZEVČÍKŮ BARVÁŘSKÉ ZKOUŠKY (BZ)

Dokončení přesídlení Přesídlení krajanů z Kazachstánu v roce 2007

Kdy (ne)testovat web oční kamerou

Tabulka přípravy učební jednotky s cíli v oblasti průřezových témat a čtenářství

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

Úlohy domácího kola kategorie C

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

Návrh. VYHLÁŠKA ze dne o zdravotnické dokumentaci. Rozsah údajů zaznamenávaných do zdravotnické dokumentace

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

OBEC HORNÍ MĚSTO Spisový řád

Semestrální práce z NUR Uživatelské rozhraní pro automat MHD. Michal Samek (samekmic)

Vyvažování tuhého rotoru v jedné rovině přístrojem Adash Vibrio

Slovní úlohy vedoucí na lineární rovnice I

ÚŘAD PRO OCHRANU HOSPODÁŘSKÉ SOUTĚŽE PŘÍKAZ. Č. j.: ÚOHS-S0922/2015/VZ-45149/2015/532/KSt Brno: 17. prosince 2015

Soukromá střední odborná škola Frýdek-Místek, s.r.o.

3 nadbytek. 4 bez starostí

Čtvrtletní výkaz o zaměstnancích a mzdových prostředcích v regionálním školství a škol v přímé působnosti MŠMT za 1. -.

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

VEŘEJNÁ NABÍDKA POZEMKŮ URČENÝCH K PRODEJI PODLE 7 ZÁKONA

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

Pokyny pro dodržování soutěžního práva

Cesta kolem světa za 80 dní. Cesta kolem světa pro 2-6 hráčů od 10 let od Michaela Rienecka, Kosmos 2004

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

Příloha č. 1 - Popis realizace sociální služby

Město Rožnov pod Radhoštěm

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

MĚSTO BROUMOV třída Masarykova 239, Broumov

Analýza oběžného kola

Přijímací řízení ve školním roce 2012/ Informace pro vycházející žáky a zákonné zástupce

Rychnov nad Kněžnou. Trutnov VÝVOJ BYTOVÉ VÝSTAVBY V KRÁLOVÉHRADECKÉM KRAJI V LETECH 1998 AŽ

*** Co Vás přivedlo k tomu založit v České republice občanské sdružení?

ÚLOHY SE SPORTOVNÍ TÉMATIKOU PRO MATEMATICKÉ TALENTY, vč. metodického listu. doc. PhDr. Marta Volfová, CSc.

Městská část Praha 10. vyhlašuje. v souladu s usnesením Rady m. č. Praha 10 č. 183 ze dne

Krajská hospodářská komora Střední Čechy. Pravidla soutěže. Poznáváme firmy ve středních Čechách. 1. Pořadatel soutěže. 2. Termín konání soutěže

TECHNICKÉ KRESLENÍ A CAD

Disciplinární řád. 1 Účel disciplinárního řádu

POKYNY Č. 45. Část I Zápis nové stavby jako samostatné věci

UŽIVATELSKÁ PŘÍRUČKA K INFORMAČNÍMU SYSTÉMU O STÁTNÍ PODPOŘE STAVEBNÍHO SPOŘENÍ

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

FOND VYSOČINY NÁZEV GP

Tisíce uživatelů v bance pracují lépe díky využití okamžitých informací o stavu kritických systémů

SMLOUVA O PLNĚNÍ ZÁVAZKU VEŘEJNÉ SLUŽBY OBECNÉHO HOSPODÁŘSKÉHO ZÁJMU

PALETOVÉ REGÁLY SUPERBUILD NÁVOD NA MONTÁŽ

na sále Kulturního domu v Rudolticích dne 7. října 2013

Obec Málkov. Málkov. Číslo jednací: Vaše č.j./ze dne: Vyřizuje / linka: Dne: OO-5/ / Vojtíšková Marie Ing./

ÚŘAD PRO OCHRANU HOSPODÁŘSKÉ SOUTĚŽE Brno, Joštova 8 ROZHODNUTÍ. Č. j.: S 064-R/00-353/140/Ná V Praze dne

Směrnice č. 01/2015. Vyhlášení 1. kola přijímacího řízení do prvních ročníků školního roku 2015/2016

U S N E S E N Í. I. Elektronické dražební jednání se koná dne v 09:00:00 hodin, prostřednictvím elektronického systému dražeb na adrese:

M. Balíková, R. Záhořík, NK ČR 1

ZÁKLADNÍ VZDĚLANOSTNÍ A OBOROVÁ STRUKTURA UŽIVATELŮ KNIHOVNY (Několik pohledů prostřednictvím statistik a pár dobrých rad)

Příloha III TECHNICKÉ A PROVOZNÍ PARAMETRY VNITROZEMSKÝCH VODNÍCH CEST MEZINÁRODNÍHO VÝZNAMU

Český úřad zeměměřický a katastrální vydává podle 3 písm. d) zákona č. 359/1992 Sb., o zeměměřických a katastrálních orgánech, tyto pokyny:

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

P r a V I d l a. C Esk A Pr Av i dla

(mimo pozůstalostní řízení a vypořádání SJM) ÚVOD POPIS ŘEŠENÍ Typ nemovitosti : Výše spoluvlastnického podílu : ZÁVĚR

VŠEOBECNÉ PODMÍNKY PLATNÉ PRO

Aktivity s GPS 3. Měření některých fyzikálních veličin

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

ORGANIZAČNÍ ŘÁD ŠKOLY

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.

JARNÍ ŠKOLA NSZM 2005 METODIKA NSZM PODKLADOVÝ MATERIÁL

Mnohem lepšá vlastnosti mç usměrňovač dvoucestnâ

Transkript:

INFORMATIKA Ze REDAKCE V l nku [2] jsme si p ed n kolika lety uk zali e en Bludi t jako p klad pr chodu grafem do ky, viz nap. [1]. V jedn z informatick ch sout student v Bosn a Hercegovin byla zad na loha tak o pohybu v bludi ti, ale tentokr t se nem lo chodit voln mi chodbami, ale naho e po zdi. Uve me si nejprve jej zn n : V textov m souboru Zdi.dat je zad na matice velikosti nejv e 50 50, ; jej mi prvky jsou jen 0 a 1. Prvek 0 znamen pr zdn prostor a prvek 1 znamen ze. Napi te program, kter zjist a sd l, jestli je horn lev roh spojen zd s doln m prav m rohem matice, tj. lze-li se z horn ho lev ho vrcholu dostat po zdi do prav ho doln ho tak, aby se p ech zelo v dy na sousedn pole s hodnotou 1. P i anal ze lohy zjist me, e jde o velmi p buzn probl m (v podstat t ) jako p i hled n cesty z bludi t, resp. jako p i e en probl mu, zda le dva zvolen uzly grafu ve stejn komponent souvislosti. Nejprve uve me program jednoho sp n ho sout c ho. program Zed {Zda je levy horni roh spojen s pravym dolnim} var N, M, I, K: Integer A: array [0..51,0..51] of Integer Matematika - fyzika - informatika 20 2010/2011 233

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] = S - 1 then if A[I-1,K] < 0 then A[I-1,K] := S R := R + 1 if A[I+1,K] < 0 then A[I+1,K] := S R := R + 1 if A[I,K-1] < 0 then A[I,K-1] := S R := R + 1 if A[I,K+1] < 0 then A[I,K+1] := S R := R + 1 DalsiKroky := R {program} for I := 0 to 51 do for K := 0 to 51 do A[I,K] := 0 assign(f,'zdi.dat') 234 Matematika - fyzika - informatika 20 2010/2011

reset(f) I := 1 K := 0 while not Eof(F) do Read(F, C) if C in ['0','1'] then K := K + 1 N := I M := K A[I, K] := Ord('0') - Ord(C) if Eoln(F) then I := I + 1 K := 0 A[1,1] := -A[1,1] I := 2 repeat Konec := true if A[N,M] > 0 then WriteLn('Cesta existuje') else if DalsiKroky(I) = 0 then WriteLn('Cesta neexistuje') else I := I + 1 Konec := false until Konec ReadLn. {program} Program na te vstupy s opa n m znam nkem a kolem na ten matice A o M dc ch a N sloupc ch nech v ohradu z nul, aby p i testov n okol prvk matice nedo lo k opu t n prostoru matice a tedy k chyb m. Program pak prvn prvek vezme s opa n m (kladn m) znam nkem, tj. jako 1 a d le se postupuje po kroc ch. V ka d m kroku se p slu n sousedn Matematika - fyzika - informatika 20 2010/2011 235

prvky ;1 zm n na slo kroku, tj. po k-t m kroku je slo k na t ch m stech zdi, kam se lze od po te n ho bodu dostat k-t m krokem. Program m asovou slo itost O(M 2 N 2 ) a nev hodn p i ka d m kroku proch z celou matic A. Z drobn j ch opomenut lze doporu it ve funkci DalsiKroky za nat oba for-cykly a od 1 a upravit pr ci s prom nnou R. Tavka d m kroku k, kolika sm ry lze v cest po zdi pokra ovat, ale t to informace se nijak nevyu v, tak e je zbyte n. Sta ilo by hodnoty funkce DalsiKroky denovat jako Boolean a v programu pakskon it p i hodnot false. N sleduj c program byl vyhotoven ve stylu [1] a podle pravidel pr chodu grafu do ky vytv frontu prvk, z nich m e cesta po zdi pokra ovat. Oproti p edchoz mu e en jsme tedy vym nili as za pam { program pot ebuje nav c pam na ulo en fronty, ale s jej m vyu it m pak pracuje o dost efektivn ji. program ZedX {Zda mezi levym hornim a pravym dolnim rohem je souvisla zed} type Tady = record Ra, Sl: Integer const MaxInd = 50 Tah: array [1..4] of record Ra, Sl: Integer = ((Ra: 0 Sl: 1), (Ra: -1 Sl: 0), (Ra: 0 Sl: -1), (Ra: 1 Sl: 0)) Start: Tady = (Ra: 1 Sl: 1) var Zed: array [1..MaxInd, 1..MaxInd] of Integer Fronta: array [1..MaxInd * MaxInd] of record Misto: Tady Krok: Integer 236 Matematika - fyzika - informatika 20 2010/2011

ZacFr, KonFr, Krok, Smer, M, N, I, J: Integer Tu1, Tu2: Tady SouvislaZed: Boolean function JeVArea(Je: Tady): Boolean if ((Je.Ra >= 1) and (Je.Ra <= M) and (Je.Sl >=1) and (Je.Sl <= N)) then JeVArea := true else JeVArea := false procedure VstupZdi var DatS: Text C: Char assign(dats, 'Zdi.dat') reset(dats) M := 0 repeat Inc(M) N := 0 repeat Inc(N) Read(DatS, C) Zed[M,N] := Ord('0') - Ord(C) until EoLn(DatS) ReadLn(DatS) until Eof(DatS) close(dats) procedure NajdiCestu Zed[Start.Ra,Start.Sl] := 1 ZacFr := 1 KonFr := 1 Fronta[1].Misto := Start Fronta[1].Krok := 1 while ((ZacFr <= KonFr) and (not SouvislaZed)) do Matematika - fyzika - informatika 20 2010/2011 237

Tu1 := Fronta[ZacFr].Misto Krok := Fronta[ZacFr].Krok + 1 Inc(ZacFr) for Smer := 1 to 4 do Tu2.Ra := Tu1.Ra + Tah[Smer].Ra Tu2.Sl := Tu1.Sl + Tah[Smer].Sl if (JeVArea(Tu2) and (Zed[Tu2.Ra, Tu2.Sl] = -1)) then Zed[Tu2.Ra, Tu2.Sl] := Krok Inc(KonFr) Fronta[KonFr].Misto := Tu2 Fronta[KonFr].Krok := Krok if ((Tu2.Ra = M) and (Tu2.Sl = N)) then SouvislaZed := true exit {NajdiCestu} {program} VstupZdi SouvislaZed := false if Zed[Start.Ra,Start.Sl] = -1 then NajdiCestu if SouvislaZed then WriteLn('Existuje souvisla zed.') else WriteLn('Souvisla zed neexistuje.') ReadLn. {program} Kdybychom si vytiskli matici A ze souboru Zdi.dat a pak zm n nou matici na konci programu, dostali bychom nap klad 238 Matematika - fyzika - informatika 20 2010/2011

1 1 1 0 1 0 1 2 3 0-1 0 1 0 1 1 0 1 2 0 4 5 0 9 1 0 0 1 1 1 3 0 0 6 7 8 1 1 1 0 1 0 4 5 6 0 8 0 0 1 0 1 1 0 0 6 0 10 9 0 1 0 0 1 0 1-1 0 0 11 0-1 1 1 0 1 1 1-1 -1 0 12 13 14 Hled n cesty kon po dosa en c lov ho bodu (proto prvek [6,6] m hodnotu ;1 a nikoli 15). V imn me si, e omezen okol u hrani n ch prvk nen e eno p smy nul, jako u p edchoz ho programu, ale funkc JeVArea. Tak tento druh program by bylo mo n je t vylep it. Ve front se zde vedle sou adnic pol naprosto zbyte n ukl d v dy i slo kroku, v n m jsme p slu n pole dos hli. slo kroku je p itom ulo eno i v poli Zed, odkud ho m eme snadno na z klad zn m ch sou adnic pole z skat. Funkce JeVArea je v programu zaps na maxim ln srozumiteln. Krat z pis a efektivn j k d ov em z sk me, kdy v jej m t le nam sto podm n n ho p kazu pou ijeme p m dosazen hodnoty logick ho v razu do n vratov hodnotyfunkce. V procedu e NajdiCestu se zbyte n opakovan vyhodnocuje slo en podm nka v hlavn m while-cyklu. Posta ovala by zde p itom jednoduch podm nka ZacFr <= KonFr, nebo p i dosazen hodnoty true do prom nn SouvislaZed je tato procedura ihned ukon ena vol n m standardn procedury exit. Z hlediska celkov ho n vrhu je vhodn zlep it dekompozici a uspo d n programu. V sou asn m programu jsou pou ity procedury VstupZdi a NajdiCestu bez parametr, kter se sv m okol m komunikuj prost ednictv m glob ln ch prom nn ch. Takov e en sice dob e funguje a program torovi se u takto mal lohy tak snadno zap e, jde ov em proti duchu strukturovan ho programov n. P i spr vn dekompozici by m ly m t v echny procedury jasn denov no rozhran ve form parametr a ke komunikaci by m ly pou vat pr v jenom sv parametry. Ka d procedura by nav c m la pracovat pouze s lok ln mi pomocn mi prom nn mi. Na z v r si tedy uk eme je t jednou program zalo en na proch zen do ky pomoc fronty, ve kter m oproti p edchoz mu e en pat i n uprav me v echny zm n n nedostatky. Matematika - fyzika - informatika 20 2010/2011 239

program ZedX {Zda mezi levym hornim a pravym dolnim rohem je souvisla zed} const MaxInd = 50 type Bludiste = array [1..MaxInd, 1..MaxInd] of Integer Tady = record Ra, Sl: Integer var Zed: Bludiste M, N: Integer function JeVArea(Je: Tady M, N: Integer): Boolean JeVArea := (Je.Ra >= 1) and (Je.Ra <= M) and (Je.Sl >=1) and (Je.Sl <= N) procedure VstupZdi(var Zed: Bludiste var M, N: Integer) var DatS: Text C: Char assign(dats, 'Zdi.dat') reset(dats) M := 0 repeat Inc(M) N := 0 repeat Inc(N) Read(DatS, C) Zed[M,N] := Ord('0') - Ord(C) until EoLn(DatS) 240 Matematika - fyzika - informatika 20 2010/2011

ReadLn(DatS) until Eof(DatS) close(dats) function NajdiCestu(var Zed: Bludiste M, N: Integer): Boolean const Tah: array [1..4] of record Ra, Sl: Integer = ((Ra: 0 Sl: 1), (Ra: -1 Sl: 0), (Ra: 0 Sl: -1), (Ra: 1 Sl: 0)) Start: Tady = (Ra: 1 Sl: 1) var Fronta: array [1..MaxInd * MaxInd] of Tady ZacFr, KonFr, Krok, Smer: Integer Tu1, Tu2: Tady NajdiCestu := false if Zed[Start.Ra,Start.Sl] = 0 then exit Zed[Start.Ra,Start.Sl] := 1 ZacFr := 1 KonFr := 1 Fronta[1] := Start while ZacFr <= KonFr do Tu1 := Fronta[ZacFr] Krok := Zed[Tu1.Ra,Tu1.Sl] + 1 Inc(ZacFr) for Smer := 1 to 4 do Tu2.Ra := Tu1.Ra + Tah[Smer].Ra Tu2.Sl := Tu1.Sl + Tah[Smer].Sl if (JeVArea(Tu2,M,N) and (Zed[Tu2.Ra,Tu2.Sl]=-1)) then Zed[Tu2.Ra, Tu2.Sl] := Krok Inc(KonFr) Matematika - fyzika - informatika 20 2010/2011 241

Fronta[KonFr] := Tu2 if (Tu2.Ra = M) and (Tu2.Sl = N) then NajdiCestu := true exit {NajdiCestu} {program} VstupZdi(Zed, M, N) if NajdiCestu(Zed, M, N) then WriteLn('Existuje souvisla zed.') else WriteLn('Souvisla zed neexistuje.') ReadLn. {program} Literatura [1] T pfer, P.:: Algoritmy a programovac techniky. Prometheus, Praha 1995 a 2007. [2] Tr vn ek, S.: Nejkrat cesta z bludi t. MFI, 15 (2005/06),. 8, str. 484{491. (Autorkou vodn ilustrace je Mgr. Jaroslava erm kov ze Such ch Lazc.) 242 Matematika - fyzika - informatika 20 2010/2011

lohy nov ho typu na IOI PAVEL T PFER Matematicko-fyzik ln fakulta UK, Praha P edposledn, tj. 21. ro n k Mezin rodn olympi dy v informatice (IOI {International Olympiad in Informatics) p inesl jednu zaj mavou novinku. Vedle t tradi n ch, pom rn obt n ch sout n ch loh, byla v ka d m sout n m dnu zad na nav c jedna loha v razn snadn j. C lem t to pravy bylo, aby i sout c s ni mi program torsk mi schopnostmi a znalostmi m li re lnou anci v sout i ste n usp t a vy e it v dy alespo tuto jednu lohu. Pro ty nejlep bylo naopak vy e en t to lohy samoz ejmost a p li je nezdr ela od pr ce nad n ro n j mi probl my. P idan leh loha byla nav c vyhodnocov na ve zvl tn m re imu ihned vpr b hu sout e. Zat mco u tradi n ch loh nemaj sout c okam itou odezvu a v sledky se dozv d a po skon en sout n ho dne, tuto novou lohu mohou odevzdat kdykoliv b hem sout e a v kr tk dob dostanou od vyhodnocovac ho syst mu zpr vu, jak usp li. Podle v sledku test pak maj mo nost svoje e en opravit a odevzdat ho k vyhodnocen znovu, t eba i postupn v cekr t. T m se loha st v je t snadn j ve srovn n s lohami, kde p m odezva chyb. Obdobn m zp sobem se odevzd vaj a vyhodnocuj rovn praktick lohy dom c ho kola na Matematick olympi dy { kategorie P. Zm na skladby sout n ch loh se na v sledc ch 21. ro n ku IOI projevila p zniv. Na rozd l od minul ch let bylo tentokr t jen velmi m lo astn k, kte v sout i nevy e ili ani jednu ze zadan ch loh. Veden Mezin rodn olympi dy v informatice proto rozhodlo, e tuto pravu zachov v platnosti i do p t ch let. Tradi n lohy zad van na IOI jsou ur eny pro nejtalentovan j studenty, b vaj zna n n ro n a nelze je proto vyu t v b n v uce programov n na st edn kole. Naproti tomu tyto nov lohy dn zvl tn znalosti nebo zku enosti nevy aduj a m e je bez probl m e it ka d st edo kol k, kter zvl dl z klady programov n. Sezn m me v s proto nyn s ob ma lohami nov ho typu, kter se objevily na 21. ro n ku Mezin rodn olympi dy v informatice (Bulharsko, Plovdiv, srpen 2009). Uve- Matematika - fyzika - informatika 20 2010/2011 243

deme zde pln zad n ka d z loh a rovn koment, jak m zp sobem je mo n lohy e it. Jednu z loh si nav c p edvedeme i s pln m uk zkov m e en m.??? Plovdivsk olympi da v informatice M stn Plovdivsk olympi da v informatice (POI) m n sleduj c neobvyk pravidla. Sout v n N astn k a maj za kol e it T sout n ch loh. Ka d odevzdan e en lohy je testov no s jedin mi vstupn mi daty, tak e za ka dou lohu z sk ka d sout c bu pln po et bod, nebo nic. dn ste n hodnocen neexistuje. Po et bod p id len ch za spr vn vy e enou lohu se stanov a po skon en sout e a je roven po tu sout c ch, kte tuto lohu nevy e- ili. V sledn hodnocen sout c ho je stanoveno jako sou et bod, kter sout c z skal za v echny j m vy e en lohy. Filip se z astnil sout e, ale je zmaten slo it mi pravidly bodov n a nedok e ur it svoje um st n v celkov m po ad POI. Pomozte Filipovi a napi te mu program, kter ur jeho celkov hodnocen a v sledn um st n v sout i. P ed zah jen m sout e obdr eli astn ci jednozna n identika n sla od 1 do N. Filip m slo P. Ve v sledkov listin jsou sout c uspo d ni sestupn podle po tu z skan ch bod. V p pad shody bod je ve v sledkov listin um st n d ve ten sout c, kter vy e il v ce loh. Pokud nerozhodne ani toto krit rium, sout c se stejn mi v sledky budou uspo d ni vzestupn podle sv ch identika n ch sel. loha Napi te program, kter ur Filipovo v sledn hodnocen a jeho po ad ve v sledkov listin na z klad informac, kter sout c vy e il kterou lohu. Omezen 1 N 2000 po et astn k sout e 1 T 2 000 po et e en ch loh 1 P N Filipovo identika n slo 244 Matematika - fyzika - informatika 20 2010/2011

Vstup V program mus p e st ze standardn ho vstupu n sleduj c daje: Prvn dek obsahuje t i cel sla N, T, P odd len v dy jednou mezerou. Dal ch N dk popisuje, kter lohy vy e il kter sout c. V po ad k-t z t chto dk ur uje, kter lohy vy e il sout c s identika n m slem k. Ka d takov dek obsahuje T cel ch sel odd len ch mezerami. Prvn z sel na dku ud v, zda sout c k vy e il prvn lohu, druh ur uje, zda vy e il druhou lohu, atd. Ka d z t chto T sel je rovno 0 nebo 1, p i em 1 znamen vy e enou lohu a0znamen nevy e enou lohu. V stup V program mus zapsat na standardn v stup jedin dek, kter obsahuje dv cel sla odd len jednou mezerou. Prvn z nich p edstavuje v sledn po et bod, kter Filip z skal v sout i. Druh z sel na v stupu ur uje Filipovo po ad ve v sledkov listin. Je to slo z rozmez od 1 do N, kde 1 znamen um st n na prvn m m st (tj. sout c, kter dos hl nejvy ho bodov ho hodnocen ) a N um st n na posledn m m st (tj. sout c s nejni m hodnocen m). Hodnocen V testovac ch datech odpov daj c ch celkov mu ohodnocen 35 body nebude m t dn sout c v POI stejn v sledn po et bod jako Filip. P klad Vstup V stup 532 32 001 110 100 110 110 Matematika - fyzika - informatika 20 2010/2011 245

Prvn lohu nevy e il jedin sout c, tak e bude hodnocena 1 bodem. Druhou lohu nevy e ili dva sout c, bude tedy hodnocena 2 body. T et lohu nevy e ili ty i sout c, tak e je hodnocena 4 body. Prvn sout c tud z skal celkem 4 body druh sout c (Filip), tvrt ap t sout c maj v ichni po 3 bodech t et sout c m 1 bod. Sout c s identika n mi sly 2, 4 a 5 maj nejen shodn po et bod, ale i stejn po et vy e en ch loh, tak e jejich vz jemn po ad bude ur eno podle identika n ch sel. Filip bude tud ve v sledkov listin POI na druh m m st, hned za sout c m s slem 1.??? e en t to lohy je zcela p mo ar, nevy aduje pou it dn ch slo it j ch datov ch struktur nebo netrivi ln ch algoritm. Vzhledem k zadan m omezen m na velikost vstupn ch dat si m eme v echny vstupn daje p e st a ulo it jednodu e do dvojrozm rn ho pole ( dky pole odpov daj sout c m, sloupce loh m). P i prvn m pr chodu polem po sloupc ch spo t me pro ka dou z loh, kolik sout c ch ji nevy e ilo. T m budeme zn t po ty bod, jimi jsou jednotliv lohy ohodnoceny. Tyto po ty si ulo me do dal ho pole (jednorozm rn ho, indexovan ho sly loh). Jinou mo nost by bylo po tat bodov hodnocen loh pr b n ji p i na t n vstupn ch dat. Druh pr chod polem po dc ch n m pak sta k tomu, abychom pro ka d ho sout c ho ur ili jeho celkov bodov hodnocen a po et vy e en ch loh. Pro ur en Filipova po ad ve v sledkov listin nemus me sestavovat celou v sledkovou listinu, tzn. nemus me adit do v sledn ho po ad v echny astn ky sout e. M sto toho sta zjistit po et sout c ch, kte se um stili p ed Filipem. Tento po et ur me tak, e si nejprve spo t me v sledky Filipa a potom spo tan v sledky ka d ho dal ho sout c ho ihned porovn me s v sledky Filipa. Sout c X se ve v sledkov listin um stil p ed Filipem pr v tehdy, kdy X m vy po et bod, ne Filip nebo X m stejn po et bod jako Filip, ale vy e il v ce loh nebo X m stejn po et bod i stejn po et vy e en ch loh jako Filip, ale m ni identika n slo. (Pokra ov n ) 246 Matematika - fyzika - informatika 20 2010/2011