International Olympiad in Informatics 2013



Podobné dokumenty
JSON API pro zjišťování cen MtG karet

Cílem seminární práce je aplikace teoretických znalostí z přednášky na konkrétní úlohy. Podstatu algoritmu totiž

63. ročník Matematické olympiády 2013/2014

International Olympiad in Informatics July 2011, Pattaya City, Thailand Soutěžní úlohy Den 2 Czech 1.3. Papoušnet

63. ročník Matematické olympiády 2013/2014

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

67. ročník Matematické olympiády 2017/2018

63. ročník Matematické olympiády 2013/2014

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů


Časová a prostorová složitost algoritmů

61. ročník Matematické olympiády 2011/2012

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

Základy programování (IZP)

ZÁKLADNÍ ŠKOLA PŘI DĚTSKÉ LÉČEBNĚ Ostrov u Macochy, Školní 363 INOVACE VÝUKY CZ.1.07/1.4.00/

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

ZÁKLADNÍ ŠKOLA PŘI DĚTSKÉ LÉČEBNĚ Ostrov u Macochy, Školní 363 INOVACE VÝUKY CZ.1.07/1.4.00/

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

Operační systémy 2: Zápočtové úkoly

6. Tahy / Kostry / Nejkratší cesty

U každé úlohy je uveden maximální počet bodů.

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Více o konstruktorech a destruktorech

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Stromy, haldy, prioritní fronty

68. ročník Matematické olympiády 2018/2019

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

66. ročník Matematické olympiády 2016/2017

2. úkol MI-PAA. Jan Jůna (junajan)

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Základní datové struktury III: Stromy, haldy

Sada 1 - Základy programování

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Knihovna WebGraphLib

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Platební systém XPAY [

Zabezpečení proti SQL injection

Vzdálenost uzlů v neorientovaném grafu

Jakýkoliv jiný způsob záznamu odpovědí (např. dva křížky u jedné úlohy) bude považován za nesprávnou odpověď.

1. ÚLOHA. Své řešení uveďte na tento list (možno i na jeho druhou stranu).

CZ.1.07/1.5.00/

DUM 12 téma: Příkazy pro tvorbu databáze

Programy v prostředí operačního systému

PB161 Programování v jazyce C++ Přednáška 10

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

2 Datové typy v jazyce C

Microsoft. Word. Šablony. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

68. ročník Matematické olympiády 2018/2019

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

66. ročník Matematické olympiády 2016/2017

1. Implementace funkce počet vrcholů. Předmět: Algoritmizace praktické aplikace (3ALGA)

67. ročník Matematické olympiády 2017/2018

Kombinatorická minimalizace

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY ZADÁNÍ NEOTVÍREJTE, POČKEJTE NA POKYN!

ZÁKLADNÍ ŠKOLA PŘI DĚTSKÉ LÉČEBNĚ Ostrov u Macochy, Školní 363 INOVACE VÝUKY CZ.1.07/1.4.00/

MS EXCEL 2010 ÚLOHY. Vytvořte tabulku podle obrázku, která bude provádět základní matematické operace se dvěma zadanými čísly a a b.

63. ročník Matematické olympiády 2013/2014

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

Cvičení č. 2. Komunikace mezi procesy Program Hodiny. 4 body

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM III.

MS EXCEL 2010 ÚLOHY. Vytvořte tabulku podle obrázku, která bude provádět základní matematické operace se dvěma zadanými čísly a a b.

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012

LZ77 KNIHOVNA PRO KOMPRESI A DEKOMPRESI DAT POMOCÍ ALGORITMU LZ77. Příručka uživatele a programátora

(Úlohy z MO kategorie P, 32. část)

NPRG030 Programování I, 2018/19 1 / :25:37

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

ZÁKLADNÍ ŠKOLA PŘI DĚTSKÉ LÉČEBNĚ Ostrov u Macochy, Školní 363 INOVACE VÝUKY CZ.1.07/1.4.00/

Úvod do mobilní robotiky AIL028

ÚLOHA 1 Ladi = 100 Hz = 340 m/s Úkoly: lnovou d él é ku k periodu T frekvenci f =? vlnovou délku =?

CVIČNÝ TEST 22. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

1 Nejkratší cesta grafem

CVIČNÝ TEST 11. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 19 IV. Záznamový list 21

PREZENTACE 1.22 HYPERTEXTOVÉ ODKAZY

Regresní a korelační analýza

1. Umístěte kurzor do sloupce Datový typ na řádek s polem, ve kterém vytvořit chcete seznam.

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

MODULÁRNÍ STAVEBNÍ SYSTÉM VAR1+ Mjr MODULAR

Psaní programu pro PLC SIMATIC S7-300 pomocí STEP 7

Anabix API. Popis způsobu používání služby

CommonTestsAndGames03

Semestrální úloha 1 z předmětu Programovací jazyk C. Textový merge. Student:

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

Microsoft. Word. Hromadná korespondence. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Obsah čísla Úvodník 3 Novinka nový nástroj Leasingy 4 Novinka rozšíření seznamu tankovacích karet 7 Soutěž 8

Odhad náročnosti plnění

Zabezpečení proti SQL injection

TESTOVÝ SEŠIT NEOTVÍREJTE, POČKEJTE NA POKYN!

68. ročník Matematické olympiády 2018/2019

Sada 1 - PHP. 03. Proměnné, konstanty

Jméno a příjmení. Pokud budete chtít svou odpověď opravit, zabarvěte původně zakřížkovaný čtvereček a zakřížkujte nový čtvereček.

Transkript:

International Olympiad in Informatics 2013 6-13 July 2013 Brisbane, Australia Day 2 tasks robots Czech 1.0 Maritin malý bráška nemá uklízení příliš v lásce. Nelze se tedy divit, že podlaha obývacího pokoje je opět plná jeho hraček. Marita ví, že nemá smysl svého brášku kárat, neboť by pouze přenosil hračky z podlahy obývacího pokoje na podlahu jídelny. A protože Marita má ráda pořádek, ale samotné uklízení jí také příliš nebaví, rozhodla se pro tyto případy vyrobit speciální uklízecí roboty a to rovnou dvou typů - slabé a malé. Na podlaze leží T hraček, každá s celočíselnou váhou W[i] a celočíselnou velikostí S[i]. Marita má k dispozici A slabých robotů. Každý slabý robot má hmotnostní limit X[i] a uveze pouze hračky, které mají ostře nižší hmotnost než X[i]. Hračka ale může mít libovolnou velikost. B malých robotů. Každý malý robot má velikostní limit Y[i] a uveze pouze hračky, které mají ostře menší velikost než Y[i]. Hračka ale může mít libovolnou hmotnost. Každému robotovi uklizení jedné hračky trvá právě jednu minutu. Různí roboti mohou uklízet různé hračky zároveň. Vaším úkolem je zjistit, zda lze uklidit všechny hračky z obývacího pokoje a v kladném případě určit nejkratší čas, za který lze celý úklid stihnout. Příklady Jako první příklad uvažujme A = 3 slabých robotů s hmotnostními limity X = [6, 2, 9], B = 2 malých robotů s velikostními limity Y = [4, 7] a T = 10 následujících hraček: Číslo hračky 0 1 2 3 4 5 6 7 8 9 Hmotnost 4 8 2 7 1 5 3 8 7 10 Velikost 6 5 3 9 8 1 3 7 6 5 Nejkratší čas jak uklidit všechny hračky je tři minuty:

První Druhá Třetí 0 1 2 Malý robot 0 Malý robot 1 Hračka 0 Hračka 4 Hračka 1 Hračka 6 Hračka 2 Hračka 5 Hračka 3 Hračka 8 Hračka 7 Hračka 9 Jako druhý příklad uvažujme A = 2 slabých robotů s hmotnostními limity X = [2, 5], B = 1 malého robota s velikostním limitem Y = [2] a T = 3 následujících hraček: Číslo hračky 0 1 2 Hmotnost 3 5 2 Velikost 1 3 2 Žádný robot není schopen uklidit hračku s hmotností 5 a velikostí 3, takže je nemožné uklidit všechny hračky z obývacího pokoje. Implementace Odevzdejte soubor implementující funkci putaway() následovně: Vaše funkce: putaway() C/C++ Pascal int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]); function putaway(a, B, T : LongInt; var X, Y, W, S : array of LongInt) : LongInt; Popis Tato funkce má za úkol spočítat nejmenší počet minut, za který lze uklidit všechny hračky za pomoci robotů, nebo vrátit -1, pokud je uklidit nelze. Parametry A: Počet slabých robotů. B: Počet malých robotů. T: Počet hraček. X: Pole délky A obsahující celá čísla, která určují hmotnostní limity jednotlivých slabých robotů.

Y: Pole délky B obsahující celá čísla, která určují velikostní limity jednotlivých malých robotů. W: Pole délky T obsahující celá čísla, která určují hmotnosti jednotlivých hraček. S: Pole délky T obsahující celá čísla, která určují velikosti jednotlivých hraček. Návratová hodnota: Nejmenší počet minut potřebných k úklidu, nebo -1 když hračky uklidit nelze. Ukázka průběhu programu Následující ukázka odpovídá prvnímu příkladu: Parametr Hodnota A 3 B 2 T 10 X [6, 2, 9] Y [4, 7] W [4, 8, 2, 7, 1, 5, 3, 8, 7, 10] S [6, 5, 3, 9, 8, 1, 3, 7, 6, 5] Vrací 3 Následující ukázka odpovídá druhému příkladu: Parametr Hodnota A 2 B 1 T 3 X [2, 5] Y [2] W [3, 5, 2] S [1, 3, 2] Vrací -1 Omezení Časový limit: 3 sekundy Paměťový limit: 64 MiB

1 T 1 000 000 0 A, B 50 000 a 1 A + B 1 X[i], Y[i], W[i], S[i] 2 000 000 000 Podúlohy Podúloha Body Dodatečná omezení 1 14 T = 2 a A + B = 2 (právě dvě hračky a právě dva roboti) 2 14 B = 0 (pouze slabí roboti) 3 25 T 50 a A + B 50 4 37 T 10 000 a A + B 1 000 5 10 (žádná) Experimentování Vzorový testovač čte soubor robots.in v následujícím formátu: řádek 1: A B T řádek 2: X[0] X[A-1] řádek 3: Y[0] Y[B-1] následujících T řádků: W[i] S[i] Prvnímu příkladu odpovídá následující obsah souboru: 3 2 10 6 2 9 4 7 4 6 8 5 2 3 7 9 1 8 5 1 3 3 8 7 7 6 10 5 Jestliže A = 0 nebo B = 0, pak odpovídající řádky (řádek 2 nebo řádek 3) by měly být prázdné.

Poznámky k programovacím jazykům C/C++ Pascal Na začátku souboru s řešením musí být řádek #include "robots.h". Naimplementujte unit Robots. Položky všech polí jsou číslovány od 0 (tj. nikoliv od 1). Viz kostry řešení ve složce této úlohy.