{ "tasks": [ { "id": "26-Z1-1", "type": "open-data", "comment": "Kevin a magnety - triviální, lineární průchod pole", "requires": [ "label-1d-pole" ], "title": "Kevin a magnety", "position": [ -189.06538772583008, 385.50855255126953 ], "taskReference": "26-Z1-1" }, { "id": "26-Z1-2", "type": "open-data", "comment": "Piškvorky - detekce vítězství v piškvorkách, procházení 2D pole v různych směrech", "requires": [ "26-Z4-3" ], "position": [ -944.0588073730469, 567.9119110107422 ], "taskReference": "26-Z1-2", "title": "Piškvorky" }, { "id": "26-Z1-3", "type": "open-data", "comment": "Zamilovaný dopis - triviální, procházení stringů po znacích a kontrola podmínek", "requires": [ "label-retezce", "30-Z1-3" ], "position": [ -385.37432861328125, -453.4102783203125 ], "taskReference": "26-Z1-3", "title": "Zamilovaný dopis" }, { "id": "26-Z1-4", "type": "open-data", "comment": "Hroch v jezeře - BFS či jiné prohledávání, počítání velikosti komponent v 2D poli, ", "requires": [ "label-grafy" ], "position": [ -1492.7423095703125, 12.952919006347656 ], "taskReference": "26-Z1-4", "title": "Hroch v jezeře" }, { "id": "26-Z2-1", "type": "open-data", "comment": "Had z domina - triviální, linerání průchod pole a počítání, na kolika místech platí podmínka, vyžaduje práci se dvojicemi", "requires": [ "label-1d-pole", "slozene-datove-struktury" ], "position": [ -638.927375793457, 404.47967529296875 ], "taskReference": "26-Z2-1", "title": "Had z domina" }, { "id": "26-Z2-2", "type": "open-data", "comment": "SADO - triviální, procházení celých čísel v intervalu a kontrola podmínky", "requires": [], "position": [ 1167.1616821289062, 208.39923095703125 ], "taskReference": "26-Z2-2", "title": "SADO" }, { "id": "26-Z2-3", "type": "open-data", "comment": "Šifrovaná zpráva - práce s řetězci, hledání mapování mezi písmenky (substitučka) a validace, že jinde substitučka funguje", "requires": [ "label-retezce", "26-Z1-3" ], "position": [ -485.63623809814453, -406.0977783203125 ], "taskReference": "26-Z2-3", "title": "Šifrovaná zpráva" }, { "id": "26-Z2-4", "type": "open-data", "comment": "Životně důležitá úloha - dostanu pole čísel, potřebuju v něm najít pravidelně se opakující výskyty hodnot, relativně složitá práce s poli, dvojcemi apod.", "requires": [ "26-Z2-1" ], "title": "Životně důležitá úloha", "position": [ -631.1951813697815, 466.20511627197266 ], "taskReference": "26-Z2-4" }, { "id": "26-Z3-1", "type": "open-data", "comment": "Zámky labyrintu - hromada ifů, vhodné možná na code review, hledání čísla z trojice takového, že je trojice aritmetrická posloupnost", "requires": [], "position": [ 1205.6161193847656, 327.53318786621094 ], "taskReference": "26-Z3-1", "title": "Zámky labyrintu" }, { "id": "26-Z3-2", "type": "open-data", "comment": "Čarodějova šifra - šifrování mřížkou, práce se stringy, rotace matice, vhodné na code review?, docela hard", "requires": [ "29-Z3-2" ], "position": [ -698.3905334472656, -310.5342102050781 ], "taskReference": "26-Z3-2", "title": "Čarodějova šifra" }, { "id": "26-Z3-3", "type": "open-data", "comment": "Hádanka - triky s dělitelností devíti a rozkladem čísel, docela hard teorie", "requires": [], "position": [ 1244.6161193847656, 406.53318786621094 ], "taskReference": "26-Z3-3", "title": "Hádanka" }, { "id": "26-Z3-4", "type": "open-data", "comment": "Tvar labyrintu - nejdelší cesta ve stromě, graf", "requires": [ "label-grafy-pracovni-poznamka" ], "position": [ -1572.0391845703125, 232.67998504638672 ], "taskReference": "26-Z3-4", "title": "Tvar labyrintu" }, { "id": "26-Z4-1", "type": "open-data", "comment": "Vražedná čísla- WTF, teorie čísel, hard as fuck, divný", "requires": [], "position": [ 1087.2091645675546, 270.43162285670724 ], "taskReference": "26-Z4-1", "title": "Vražedná čísla" }, { "id": "26-Z4-2", "type": "open-data", "comment": "Sbírání vajíček - hledení mediánu, musí se to ale vymyslet, nejkratší cesta při chození tam a zpět", "requires": [], "position": [ 543.2475501644587, -786.0833304046971 ], "taskReference": "26-Z4-2", "title": "Sbírání vajíček" }, { "id": "26-Z4-3", "type": "open-data", "comment": "Hra Othello - link na 26-Z1-2, procházení 2D pole po různých směrech", "requires": [ "label-2d-pole" ], "title": "Hra Othello", "position": [ -886.0805053710938, 524.8581848144531 ], "taskReference": "26-Z4-3" }, { "id": "26-Z4-4", "type": "open-data", "comment": "Hlídači v labyrintu - policajti hlídající na grafu, konkrétně na stromě, rekurze, technicky asi až DP", "requires": [ "label-grafy-pracovni-poznamka" ], "position": [ -1356.3235473632812, 172.98125457763672 ], "taskReference": "26-Z4-4", "title": "Hlídači v labyrintu" }, { "type": "open-data", "id": "27-1-4", "taskReference": "27-1-4", "requires": [], "position": [ 2106.817985534668, 1146.6559019088745 ], "title": "Head-up display" }, { "type": "open-data", "id": "27-2-5", "taskReference": "27-2-5", "requires": [], "position": [ 1217.155632019043, 1124.5684385299683 ], "title": "Nejdelší příkaz" }, { "type": "open-data", "id": "27-3-5", "taskReference": "27-3-5", "requires": [], "position": [ 1110.0876388549805, 1190.2755918502808 ], "title": "Komprese obrazu" }, { "type": "open-data", "id": "27-4-5", "taskReference": "27-4-5", "requires": [], "position": [ 2081.3400802612305, 790.309832572937 ], "title": "Večeře pro opraváře" }, { "type": "open-data", "id": "27-5-3", "taskReference": "27-5-3", "requires": [], "position": [ 2056.503044128418, 625.5225400924683 ], "title": "Čekání na poště" }, { "type": "open-data", "id": "27-Z1-1", "taskReference": "27-Z1-1", "requires": [], "position": [ 1056.8284225463867, 1438.8191709518433 ], "title": "Na zastávce" }, { "type": "open-data", "id": "27-Z1-2", "taskReference": "27-Z1-2", "requires": [], "position": [ 1739.7698287963867, -160.9592409133911 ], "title": "Kalkulačka", "comment": "jednoduché načtení vstupu a pak vyhodnocení" }, { "type": "open-data", "id": "27-Z1-3", "taskReference": "27-Z1-3", "requires": [], "position": [ 1518.409294128418, 1245.754168510437 ], "title": "Slovník T9" }, { "type": "open-data", "id": "27-Z1-4", "taskReference": "27-Z1-4", "requires": [], "position": [ 1333.111198425293, 1194.713885307312 ], "title": "Lyžař" }, { "id": "27-Z2-1", "type": "open-data", "comment": "Závorky z cereálií - 2 průchody pole, závorky", "requires": [ "26-Z1-1", "label-1d-pole" ], "position": [ -126.93786239624023, 442.21407318115234 ], "taskReference": "27-Z2-1", "title": "Závorky z cereálií" }, { "type": "open-data", "id": "27-Z2-2", "taskReference": "27-Z2-2", "requires": [], "position": [ 898.155632019043, 1242.5684385299683 ], "title": "Hrnce od Horsta" }, { "type": "open-data", "id": "27-Z2-3", "taskReference": "27-Z2-3", "requires": [], "position": [ 809.155632019043, 1312.5684385299683 ], "title": "Nápis na tričku" }, { "type": "open-data", "id": "27-Z2-4", "taskReference": "27-Z2-4", "requires": [], "position": [ 1017.155632019043, 1255.5684385299683 ], "title": "Hořící auto" }, { "type": "open-data", "id": "27-Z3-1", "taskReference": "27-Z3-1", "requires": [], "position": [ 489.8798141479492, 1566.5902891159058 ], "title": "Kevin nabíječ, s.r.o.", "comment": "chyták v posledním vstupu, jinak fakt jednoduchá" }, { "type": "open-data", "id": "27-Z3-2", "taskReference": "27-Z3-2", "requires": [], "position": [ 1269.155632019043, 1015.5684385299683 ], "title": "Nedej vitagen" }, { "type": "open-data", "id": "27-Z3-3", "taskReference": "27-Z3-3", "requires": [], "position": [ 110.0786280632019, 727.598406791687 ], "title": "Superstromy", "comment": "třízení pole (info o counting sortu)" }, { "type": "open-data", "id": "27-Z3-4", "taskReference": "27-Z3-4", "requires": [], "position": [ 1557.155632019043, 1168.5684385299683 ], "title": "Robo Rally" }, { "type": "open-data", "id": "27-Z4-1", "taskReference": "27-Z4-1", "requires": [], "position": [ 1573.334342956543, -36.192124366760254 ], "title": "Záhada Pražského orloje", "comment": "Euklidův algoritmus, potřeba vymyslet přes matematiku" }, { "type": "open-data", "id": "27-Z4-2", "taskReference": "27-Z4-2", "requires": [], "position": [ 1028.155632019043, 1032.5684385299683 ], "title": "Unavení u oken" }, { "type": "open-data", "id": "27-Z4-3", "taskReference": "27-Z4-3", "requires": [], "position": [ 974.155632019043, 1158.5684385299683 ], "title": "Běžkaři v Praze!" }, { "type": "open-data", "id": "27-Z4-4", "taskReference": "27-Z4-4", "requires": [], "position": [ 1363.676628112793, 1480.8441953659058 ], "title": "Koňské skoky" }, { "type": "open-data", "id": "28-1-1", "taskReference": "28-1-1", "requires": [], "position": [ 2578.840576171875, 1147.3673400878906 ], "title": "Jízda na biomotorce", "comment": "Prohledávání statového prostoru - hledání cesty v obohacneném grafu" }, { "type": "open-data", "id": "28-1-5", "taskReference": "28-1-5", "requires": [], "position": [ 2578.8408203125, 1227.2563781738281 ], "title": "Likvidace plísně" }, { "type": "open-data", "id": "28-2-5", "taskReference": "28-2-5", "requires": [], "position": [ 2579.950439453125, 1310.4740905761719 ], "title": "Hlídání věznice" }, { "type": "open-data", "id": "28-3-5", "taskReference": "28-3-5", "requires": [], "position": [ 2434.5966796875, 1312.6931457519531 ], "title": "Závaží z fošen" }, { "type": "open-data", "id": "28-4-4", "taskReference": "28-4-4", "requires": [], "position": [ 2251.517822265625, 1337.1037902832031 ], "title": "Podivuhodný obraz" }, { "type": "open-data", "id": "28-5-6", "taskReference": "28-5-6", "requires": [], "position": [ 2071.767333984375, 1343.7611389160156 ], "title": "Sloty na iridium" }, { "id": "28-Z1-1", "type": "open-data", "taskReference": "28-Z1-1", "comment": "triviální, průchod pole", "requires": [], "position": [ 24.578619956970215, 450.8261528015137 ], "title": "Kevinův leták" }, { "id": "28-Z1-2", "type": "open-data", "taskReference": "28-Z1-2", "comment": "dělitelnost", "requires": [], "position": [ 1741.000244140625, 39.6094856262207 ], "title": "Sářina hra" }, { "id": "28-Z1-3", "type": "open-data", "taskReference": "28-Z1-3", "comment": "dělení a modulení", "requires": [], "position": [ 1519.6990966796875, 37.605228424072266 ], "title": "Petrovy stromy" }, { "id": "28-Z1-4", "type": "open-data", "taskReference": "28-Z1-4", "comment": "hledání komponent souvislosti", "requires": [], "position": [ -1438.7784957885742, 355.7752151489258 ], "title": "Zuzčina zvědavost" }, { "id": "28-Z2-1", "type": "open-data", "taskReference": "28-Z2-1", "comment": "hledání podřetězce", "requires": [], "position": [ -345.0656204223633, -277.733154296875 ], "title": "Před muzeem" }, { "id": "28-Z2-2", "type": "open-data", "taskReference": "28-Z2-2", "comment": "Collatzova domněnka", "requires": [], "position": [ 1401.8692626953125, -524.0748901367188 ], "title": "Práce pro Sáru" }, { "id": "28-Z2-3", "type": "open-data", "taskReference": "28-Z2-3", "comment": "seznam sousedů, hledání kružnic dané velikosti (3)", "requires": [], "position": [ 1261.51611328125, -521.9762878417969 ], "title": "Byli jsme tři" }, { "id": "28-Z2-4", "type": "open-data", "taskReference": "28-Z2-4", "comment": "spojový seznam nebo eulerovský tah", "requires": [], "position": [ -552.0953826904297, 713.5716896057129 ], "title": "Rozsypaná turbína" }, { "id": "28-Z3-1", "type": "open-data", "taskReference": "28-Z3-1", "comment": "nalezení minima a maxima", "requires": [], "position": [ 479.60821533203125, -825.9333801269531 ], "title": "Místo oslavy" }, { "id": "28-Z3-2", "type": "open-data", "taskReference": "28-Z3-2", "comment": "matematika", "requires": [], "position": [ 1637.5750732421875, 40.6045036315918 ], "title": "Zlomkovník" }, { "id": "28-Z3-3", "type": "open-data", "taskReference": "28-Z3-3", "comment": "zjednodušení problému??", "requires": [], "position": [ 874.887451171875, -94.75247955322266 ], "title": "Posloupnost za trest" }, { "id": "28-Z3-4", "type": "open-data", "taskReference": "28-Z3-4", "comment": "rekurze (není to jednoduché)", "requires": [], "position": [ 982.91064453125, -295.6294708251953 ], "title": "Zbývající úkoly" }, { "id": "28-Z4-1", "type": "open-data", "taskReference": "28-Z4-1", "comment": "souřadnice", "requires": [], "position": [ 509.86163330078125, -157.92288208007812 ], "title": "Půdorys" }, { "id": "28-Z4-2", "type": "open-data", "taskReference": "28-Z4-2", "comment": "triviální průchod 2D pole", "requires": [], "position": [ -928.4460144042969, -222.2663803100586 ], "title": "Vykopávky" }, { "id": "28-Z4-3", "type": "open-data", "taskReference": "28-Z4-3", "comment": "binární vyhledávání, třídění", "requires": [], "position": [ -272.4446258544922, 661.3140869140625 ], "title": "Mocniny" }, { "id": "28-Z4-4", "type": "open-data", "taskReference": "28-Z4-4", "comment": "dynamické programování, práce s čísly", "requires": [], "position": [ 505.1663513183594, 123.459716796875 ], "title": "Čtyřková" }, { "type": "open-data", "id": "29-1-4", "taskReference": "29-1-4", "requires": [], "position": [ 2426.829833984375, 1231.6946105957031 ], "title": "Zběsilý útěk" }, { "type": "open-data", "id": "29-2-4", "taskReference": "29-2-4", "requires": [], "position": [ 2267.0517578125, 1250.5573425292969 ], "title": "Nejsložitější záhon" }, { "type": "open-data", "id": "29-3-1", "taskReference": "29-3-1", "requires": [], "position": [ 2419.062744140625, 1162.9012756347656 ], "title": "Verbování" }, { "type": "open-data", "id": "29-4-3", "taskReference": "29-4-3", "requires": [], "position": [ 2269.270751953125, 1179.5448913574219 ], "title": "Výhružné dopisy" }, { "type": "open-data", "id": "29-5-1", "taskReference": "29-5-1", "requires": [], "position": [ 2420.17236328125, 1096.3271789550781 ], "title": "Holubí pošta" }, { "id": "29-Z1-1", "type": "open-data", "comment": "Kevinova želva — triviální, průchod po 2D souřadnicích", "requires": [ "label-zelvy" ], "title": "Kevinova želva", "position": [ 536.0025634765625, 428.0677185058594 ], "taskReference": "29-Z1-1" }, { "id": "29-Z1-2", "type": "open-data", "taskReference": "29-Z1-2", "comment": "Sářiny pamlsky — triviální, výpis přirozených čísel na základě pravidel", "requires": [ "algoritmy" ], "position": [ -221.7577782869339, 50.265974044799805 ], "title": "Sářiny pamlsky" }, { "id": "29-Z1-3", "type": "open-data", "comment": "Petrova statistika — ne úplně triviální, tvorba histogramu z pole", "requires": [ "27-Z2-1" ], "title": "Petrova statistika", "position": [ -108.29062271118164, 496.31075286865234 ], "taskReference": "29-Z1-3" }, { "id": "29-Z1-4", "type": "open-data", "comment": "Zuzčin výlet — DFS (topologické pořadí)", "requires": [ "label-grafy-pracovni-poznamka" ], "position": [ -1766.0089111328125, 196.37316131591797 ], "taskReference": "29-Z1-4", "title": "Zuzčin výlet" }, { "id": "29-Z2-1", "type": "open-data", "comment": "Krocení zlé želvy — triviální, průchod po 2D souřadnicích, přímo navazuje na 29-Z1-1", "requires": [ "29-Z1-1" ], "position": [ 645.7811584472656, 485.86309814453125 ], "taskReference": "29-Z2-1", "title": "Krocení zlé želvy" }, { "id": "29-Z2-2", "type": "open-data", "taskReference": "29-Z2-2", "comment": "Sářina volba — spíš triviální, hledání společných vlasností na dvou stejně dlouhých polích", "requires": [], "position": [ -577.4003295898438, 573.2033996582031 ], "title": "Sářina volba" }, { "id": "29-Z2-3", "type": "open-data", "taskReference": "29-Z2-3", "comment": "Petr v říši divů — grafy - prohledávání (rozpad na komponenty)", "requires": [], "position": [ -1597.2468719482422, 369.05931854248047 ], "title": "Petr v říši divů" }, { "id": "29-Z2-4", "type": "open-data", "taskReference": "29-Z2-4", "comment": "Zuzka: Cesta tam a zase zpátky — nejdelší rostoucí podposloupnost splňující podmínku, příběh i vstup připomínají 28-Z4-5", "requires": [], "position": [ 347.90077209472656, -454.14956760406494 ], "title": "Zuzka: Cesta tam a zase zpátky" }, { "id": "29-Z3-1", "type": "open-data", "comment": "Želva na dvorku — spíš triviální, netriviální udělat efektivně (ale asi to není třeba pro úspěch), volně navazuje na 29-Z2-1 a 29-Z1-1, průchod po 2D souřadnicích, invalidní příkazy (směrem do překážky) ignorujeme", "requires": [ "26-Z4-3" ], "position": [ -800.1546325683594, 577.3485870361328 ], "taskReference": "29-Z3-1", "title": "Želva na dvorku" }, { "id": "29-Z3-2", "type": "open-data", "comment": "Písemka z angličtiny — voser implementovat, easy dřevorubecký řešení, optimálně trie, což na Z IMHO hard", "requires": [ "26-Z2-3", "label-retezce" ], "position": [ -588.6411285400391, -358.7561950683594 ], "taskReference": "29-Z3-2", "title": "Písemka z angličtiny" }, { "id": "29-Z3-3", "type": "open-data", "comment": "Šestková čísla — mega voser implementovat, spíš matematická úloha, převod dešitkových čísel do hacknutých římských", "requires": [], "position": [ 1229.6161193847656, 274.53318786621094 ], "taskReference": "29-Z3-3", "title": "Šestková čísla" }, { "id": "29-Z3-4", "type": "open-data", "taskReference": "29-Z3-4", "comment": "Zdobení stromečku — grafy - prohledávání, hledání kružnice v grafu, zmateně zadané", "requires": [], "position": [ -1223.6292419433594, 342.4906921386719 ], "title": "Zdobení stromečku" }, { "id": "29-Z4-1", "type": "open-data", "taskReference": "29-Z4-1", "comment": "Šíření viru — vopruz načítat vstup, přímočaré kvadratické řešení, trochu důmyslnější optimální, podhodnocená as fuck, šíření viru v grafu", "requires": [], "position": [ -1222.72802734375, 406.6653747558594 ], "title": "Šíření viru" }, { "id": "29-Z4-2", "type": "open-data", "taskReference": "29-Z4-2", "comment": "Vybírání atrakcí — ezy hladový řešení, pokud si ho umíte zdůvodnit, což není úplně triviální, máme K lidí, pro každého přípustný interval a K² čísel, které každému chceme přidělit", "requires": [], "position": [ 596.6312255859375, 96.44056701660156 ], "title": "Vybírání atrakcí" }, { "id": "29-Z4-3", "type": "open-data", "comment": "Želva v akváriu — malej voser, triviální, přímo navazuje na 29-Z2-1 a 29-Z1-1, průchod po 3D souřadnicích", "requires": [ "29-Z1-1", "29-Z2-1" ], "position": [ 501.77142333984375, 503.8365783691406 ], "taskReference": "29-Z4-3", "title": "Želva v akváriu" }, { "id": "29-Z4-4", "type": "open-data", "taskReference": "29-Z4-4", "comment": "Hledání součtu — ezy housenka pokud umíte číst, hledání podposloupnosti se součtem co nejbližším zadanému, celé v kladných číslech", "requires": [], "position": [ 378.12322998046875, -405.99293518066406 ], "title": "Hledání součtu" }, { "type": "open-data", "id": "30-1-4", "taskReference": "30-1-4", "requires": [], "position": [ 2425.829833984375, 1017.5477600097656 ], "title": "Cesta v bunkru", "comment": "Hledání cesty v hilbertově křivce" }, { "type": "open-data", "id": "30-2-4", "taskReference": "30-2-4", "requires": [], "position": [ 2291.462158203125, 823.3730773925781 ], "title": "Komprimace" }, { "type": "open-data", "id": "30-3-1", "taskReference": "30-3-1", "requires": [], "position": [ 2260.394287109375, 885.5089416503906 ], "title": "Vlnění" }, { "type": "open-data", "id": "30-4-5", "taskReference": "30-4-5", "requires": [], "position": [ 2434.596923828125, 816.7156677246094 ], "title": "Frňákovník" }, { "type": "open-data", "id": "30-5-2", "taskReference": "30-5-2", "requires": [], "position": [ 2432.377685546875, 878.8515930175781 ], "title": "Útěk z trezorů" }, { "id": "30-Z1-1", "type": "open-data", "taskReference": "30-Z1-1", "title": "Kevinova nepatnáctka", "comment": "Trivka, chození po souřadnicích", "requires": [], "position": [ -992.762939453125, -321.29197692871094 ] }, { "id": "30-Z1-2", "type": "open-data", "taskReference": "30-Z1-2", "title": "Sářiny loutky", "comment": "Hladový algoritmus", "requires": [], "position": [ -570.9222412109375, 107.09713745117188 ] }, { "id": "30-Z1-3", "type": "open-data", "taskReference": "30-Z1-3", "title": "Petrovo luštění zprávy", "comment": "Hledání nejčastějšího výskytu ", "requires": [], "position": [ -271.56785583496094, -510.6902160644531 ] }, { "id": "30-Z1-4", "type": "open-data", "taskReference": "30-Z1-4", "title": "Zuzčin projekt", "comment": "Sousednost v grafu", "requires": [], "position": [ -1565.0438842773438, 316.3718795776367 ] }, { "id": "30-Z2-1", "type": "open-data", "taskReference": "30-Z2-1", "title": "K-k-koktavý K-K-Kevin", "comment": "Trivka, projít string a skippovat duplikáty", "requires": [], "position": [ -403.6249237060547, -350.6728820800781 ] }, { "id": "30-Z2-2", "type": "open-data", "taskReference": "30-Z2-2", "title": "Hřiště pro tarantule", "comment": "Chození po souřadnicích, detekce kolizí", "requires": [], "position": [ 513.1159057617188, -111.86053466796875 ] }, { "id": "30-Z2-3", "type": "open-data", "taskReference": "30-Z2-3", "title": "Klonování pavouků", "comment": "Sestavení stromu a vypsání cesty do kořene", "requires": [], "position": [ -1327.8906602859497, 244.3093490600586 ] }, { "id": "30-Z2-4", "type": "open-data", "taskReference": "30-Z2-4", "title": "Příliš bílý displej", "comment": " Práce s 2d polem", "requires": [], "position": [ -1107.7801971435547, -419.0527801513672 ] }, { "id": "30-Z3-1", "type": "open-data", "taskReference": "30-Z3-1", "title": "Rozkolísaná produktivita", "comment": " Hledání dvou čísel s co největším rozdílem", "requires": [], "position": [ -9.45107650756836, 388.4032596349716 ] }, { "id": "30-Z3-2", "type": "open-data", "taskReference": "30-Z3-2", "title": "Podlézání Číňanům", "comment": "Výroba palindromu", "requires": [], "position": [ -512.0505065917969, -285.66261291503906 ] }, { "id": "30-Z3-3", "type": "open-data", "taskReference": "30-Z3-3", "title": "Teambuilding", "comment": "Voser implementovat, hledání klíčů na odemčení dveří", "requires": [], "position": [ 1280.2218017578125, -275.69879150390625 ] }, { "id": "30-Z3-4", "type": "open-data", "taskReference": "30-Z3-4", "title": "Korporátní seznamka", "comment": "Voser implementovat, doplňování do stringu", "requires": [], "position": [ 1161.6162109375, -319.74127197265625 ] }, { "id": "30-Z4-1", "type": "open-data", "taskReference": "30-Z4-1", "title": "Statistika sprintů", "comment": " Prefixové součty", "requires": [], "position": [ -1140.9943389892578, -474.1478576660156 ] }, { "id": "30-Z4-2", "type": "open-data", "taskReference": "30-Z4-2", "title": "Klíče od tělocvičny", "comment": "Provházení bludiště", "requires": [], "position": [ -1713.9394073486328, 315.67919158935547 ] }, { "id": "30-Z4-3", "type": "open-data", "taskReference": "30-Z4-3", "title": "Uhlazovací válec", "comment": "ProhledávánI grafu", "requires": [], "position": [ -1414.956787109375, 298.2016830444336 ] }, { "id": "30-Z4-4", "type": "open-data", "taskReference": "30-Z4-4", "title": "Ohrazení zahrádky", "comment": "Trivka, práce souřadnicemi", "requires": [], "position": [ -1050.291244506836, -367.55816745758057 ] }, { "type": "open-data", "id": "31-1-1", "taskReference": "31-1-1", "requires": [], "position": [ 2454.366792678833, 946.1978244781494 ], "title": "Karkulčin byznys" }, { "type": "open-data", "id": "31-2-4", "taskReference": "31-2-4", "requires": [], "position": [ 2271.184907913208, 947.7135105133057 ], "title": "Továrna na perník" }, { "type": "open-data", "id": "31-3-3", "taskReference": "31-3-3", "requires": [], "position": [ 2253.449312210083, 1036.687936782837 ], "title": "Přebírání hrachu" }, { "type": "open-data", "id": "31-4-3", "taskReference": "31-4-3", "requires": [], "position": [ 2268.606294631958, 1107.9266452789307 ], "title": "Nejvíc spánku" }, { "type": "open-data", "id": "31-5-3", "taskReference": "31-5-3", "requires": [], "position": [ 2095.814790725708, 1282.2340183258057 ], "title": "Kváskový chléb" }, { "id": "31-Z1-1", "type": "open-data", "requires": [ "algoritmy" ], "comment": "úloha s odčítáním času", "title": "Zuzka a poník", "position": [ -349.1861801147461, 54.13505554199219 ], "taskReference": "31-Z1-1" }, { "id": "31-Z1-2", "type": "open-data", "comment": "BFS (šachovnice, custom figurka, nejkratší cesta) ", "requires": [ "label-grafy-pracovni-poznamka" ], "position": [ -1444.3232421875, 224.83528900146484 ], "taskReference": "31-Z1-2", "title": "Ukradený jezdec" }, { "id": "31-Z1-3", "type": "open-data", "taskReference": "31-Z1-3", "comment": "průnik N intervalů (3D na kvádrech)", "requires": [], "position": [ 954.6195068359375, -144.04727935791016 ], "title": "Průnik kvádrů" }, { "id": "31-Z1-4", "type": "open-data", "comment": "2D pole (až na poslední vstup), hešování (piškvorky) - navazuje na 26-Z1-2", "requires": [ "26-Z1-2" ], "title": "Piškvorky naslepo", "position": [ -984.0560913085938, 622.9081573486328 ], "taskReference": "31-Z1-4" }, { "id": "31-Z2-1", "type": "open-data", "taskReference": "31-Z2-1", "comment": "hešování (objednávka pizzy po dílcích, ceil(group by typ, sum, / 8)))", "requires": [], "position": [ 1182.9420166015625, -121.8834228515625 ], "title": "Objednávka pizzy" }, { "id": "31-Z2-2", "type": "open-data", "taskReference": "31-Z2-2", "comment": "2D pole (simulace tetrisu)", "requires": [], "position": [ -959.19970703125, -270.38741302490234 ], "title": "Tetris bez dozoru" }, { "id": "31-Z2-3", "type": "open-data", "taskReference": "31-Z2-3", "comment": "ňáký šachy, předzpracování, hledání nejbližších věží a střelců in bulk - chce lepší tag", "requires": [], "position": [ 851.67236328125, 952.2879638671875 ], "title": "Spousta figurek" }, { "id": "31-Z2-4", "type": "open-data", "taskReference": "31-Z2-4", "comment": "hledání periody v desetinném čísle", "requires": [], "position": [ 1841.7220458984375, 38.87567901611328 ], "title": "Zmatematika" }, { "id": "31-Z3-1", "type": "open-data", "taskReference": "31-Z3-1", "comment": "triviální - zapamatování stringů (vybírání rýmů)", "requires": [], "position": [ -224.54463958740234, -419.3528137207031 ], "title": "Tvůrčí krize" }, { "id": "31-Z3-2", "type": "open-data", "comment": "DFS (hledání cesty v grafu po písmenech)", "requires": [ "label-grafy-pracovni-poznamka" ], "position": [ -1710.0618896484375, 254.14208221435547 ], "taskReference": "31-Z3-2", "title": "Zámek obrazovky" }, { "id": "31-Z3-3", "type": "open-data", "comment": "barvení bipartitního grafu (hledání partit), na vstupu hrany", "requires": [ "26-Z1-4", "label-grafy" ], "position": [ -1580.1476440429688, 44.96050262451172 ], "taskReference": "31-Z3-3", "title": "Stáda hrochů" }, { "id": "31-Z3-4", "type": "open-data", "taskReference": "31-Z3-4", "comment": "geometrie - přihrádky/zametání (vypsat všechny dvojice bodů s vzdáleností max K)", "requires": [], "position": [ 828.0521850585938, 204.80533599853516 ], "title": "Pohyb termitů" }, { "id": "31-Z4-1", "type": "open-data", "taskReference": "31-Z4-1", "comment": "sort + průchod pole (nejosamělejší bod na přímce)", "requires": [], "position": [ -210.8751163482666, 705.6483154296875 ], "title": "Nejosamělejší kamarád" }, { "id": "31-Z4-2", "type": "open-data", "taskReference": "31-Z4-2", "comment": "binární čísla", "requires": [], "position": [ 1822.9569702148438, -115.60995483398438 ], "title": "Závažíčka na druhou" }, { "type": "open-data", "id": "31-Z4-3", "taskReference": "31-Z4-3", "requires": [], "position": [ 1538.031099319458, 801.7519016265869 ], "title": "Probíhání bludištěm" }, { "type": "open-data", "id": "31-Z4-4", "taskReference": "31-Z4-4", "requires": [], "position": [ 1499.911958694458, 901.5865573883057 ], "title": "Ohnivý únik" }, { "type": "open-data", "id": "32-1-1", "taskReference": "32-1-1", "requires": [], "position": [ 2098.499687194824, 1213.835223197937 ], "title": "Zkomolené vysílání" }, { "type": "open-data", "id": "32-2-2", "taskReference": "32-2-2", "requires": [], "position": [ 2080.4985275268555, 862.9364805221558 ], "title": "Mezihvězdné jízdní řády" }, { "type": "open-data", "id": "32-3-1", "taskReference": "32-3-1", "requires": [], "position": [ 2102.0034103393555, 937.4345273971558 ], "title": "Zkrat" }, { "type": "open-data", "id": "32-4-4", "taskReference": "32-4-4", "requires": [], "position": [ 2101.0969161987305, 1080.7460508346558 ], "title": "Zpětný signál" }, { "type": "open-data", "id": "32-5-5", "taskReference": "32-5-5", "requires": [], "position": [ 2098.2350997924805, 1004.0238218307495 ], "title": "Druhá kostra" }, { "type": "open-data", "id": "32-5-6", "taskReference": "32-5-6", "requires": [], "position": [ 2058.4335861206055, 715.0660581588745 ], "title": "Geocaching s odhadem" }, { "type": "open-data", "id": "32-Z1-1", "taskReference": "32-Z1-1", "requires": [], "position": [ 1411.155632019043, 1141.5684385299683 ], "title": "Kevin v papírnictví" }, { "type": "open-data", "id": "32-Z1-2", "taskReference": "32-Z1-2", "requires": [], "position": [ 1248.442741394043, 1383.991473197937 ], "title": "Chybná účtenka" }, { "type": "open-data", "id": "32-Z1-3", "taskReference": "32-Z1-3", "requires": [], "position": [ 1140.155632019043, 1328.5684385299683 ], "title": "Školní knihy" }, { "type": "open-data", "id": "32-Z1-4", "taskReference": "32-Z1-4", "requires": [], "position": [ 959.155632019043, 1308.5684385299683 ], "title": "Plánek školy" }, { "type": "open-data", "id": "32-Z2-1", "taskReference": "32-Z2-1", "requires": [], "position": [ 1572.155632019043, 1029.5684385299683 ], "title": "Prší" }, { "type": "open-data", "id": "32-Z2-2", "taskReference": "32-Z2-2", "requires": [], "position": [ 1471.155632019043, 681.5684385299683 ], "title": "Turnaj hada" }, { "type": "open-data", "id": "32-Z2-3", "taskReference": "32-Z2-3", "requires": [], "position": [ 1686.191276550293, 928.291277885437 ], "title": "Panika v chodbě" }, { "type": "open-data", "id": "32-Z2-4", "taskReference": "32-Z2-4", "requires": [], "position": [ 1228.155632019043, 733.5684385299683 ], "title": "Opisování v testu" }, { "type": "open-data", "id": "32-Z3-1", "taskReference": "32-Z3-1", "requires": [], "position": [ 1327.155632019043, 622.5684385299683 ], "title": "Tiskařský stroj" }, { "type": "open-data", "id": "32-Z3-2", "taskReference": "32-Z3-2", "requires": [], "position": [ 1159.339469909668, 868.9643125534058 ], "title": "Sářina omalovánka" }, { "type": "open-data", "id": "32-Z3-3", "taskReference": "32-Z3-3", "requires": [], "position": [ 1255.4586715698242, 1507.3838682174683 ], "title": "Akční ceny" }, { "type": "open-data", "id": "32-Z3-4", "taskReference": "32-Z3-4", "requires": [], "position": [ 1671.468864440918, 1398.2491025924683 ], "title": "Dálnice" }, { "type": "open-data", "id": "32-Z4-1", "taskReference": "32-Z4-1", "requires": [], "position": [ 1107.155632019043, 680.5684385299683 ], "title": "Jednobarevné praní" }, { "type": "open-data", "id": "32-Z4-2", "taskReference": "32-Z4-2", "requires": [], "position": [ 1595.155632019043, 1108.5684385299683 ], "title": "Hoří chleba?" }, { "type": "open-data", "id": "32-Z4-3", "taskReference": "32-Z4-3", "requires": [], "position": [ 1420.5522384643555, 1229.4311094284058 ], "title": "Esej do bloku" }, { "type": "open-data", "id": "32-Z4-4", "taskReference": "32-Z4-4", "requires": [], "position": [ 748.155632019043, 1242.5684385299683 ], "title": "Bomberman uklízí" }, { "type": "open-data", "id": "33-Z1-1", "taskReference": "33-Z1-1", "requires": [], "position": [ 116.6659164428711, 514.1219053268433 ], "title": "Kontrola závorkových programů" }, { "type": "open-data", "id": "33-Z1-2", "taskReference": "33-Z1-2", "requires": [], "position": [ 876.1545333862305, 754.659197807312 ], "title": "Sobotní den železnice" }, { "type": "open-data", "id": "33-Z1-3", "taskReference": "33-Z1-3", "requires": [], "position": [ 1633.5070114135742, 1444.5108823776245 ], "title": "Petrův zmatený výlet" }, { "id": "algoritmy", "type": "text", "comment": "...", "requires": [ "jak-resit-ulohy" ], "title": "Algoritmy", "htmlContent": "
Každý program je vlastně popis nějakého pracovního postupu. Té samotné myšlence, oddělené od konkrétního způsobu implementace, říkáme algoritmus.
Algoritmy jsou principy, které zůstávají stejné neustále. Algoritmy vymyšlené před 50 lety jsou často stále to nejlepší, co známe. Často i to nejlepší, co je vůbec možné. Proto dává smysl zabývat se studiem samotných algoritmů. Programovací jazyky se mění. Metoda zápisu toho samého algoritmu často také. Ale základní myšlenka je pořád stejná.
", "position": [ -283.2298583984375, -7.579597473144531 ] }, { "id": "data", "type": "text", "comment": "...", "requires": [ "31-Z1-1", "29-Z1-2" ], "title": "Datové struktury", "htmlContent": "Ruku v ruce s algoritmy jdou data. Nemít data, tak nemáme co počítat, že?
Data, nad kterými v programu pracujeme, ukládáme do paměti. Fyzicky je pamět hodně dlouhá posloupnost jedniček a nul – bitů. To je ale nepraktické a tak bity skupinkujeme do bytů – 8 bitů aneb čísel od 0 do 255.
Takže paměť je jen hodně číslíček za sebou, jak ale tedy vznikají například obrázky, na které na monitoru koukáme? Jak vlastně můžeme reprezentovat větší čísla než 255? Jednou z možností je například zapisovat si jednotlivé cifry velkého čísla. Ještě pak potřebujeme vědět, kolik jich je, ale tuhle informaci si můžeme uložit například na začátek.
FIXME obrázek
Právě jsme si popsali, jak z jednoduchých základních kamenů, posloupnosti malých čísel, postavit něco většího. Něco, čemu vznešeně říkáme datová struktura.
Datové struktury popisují, jak reprezentovat nějaké komplexní informace z jednodušších bloků (na nejnižší úrovni z posloupnosti čísel). Velmi blízce souvisí s algoritmy. Mnoho algoritmů by nám bez datových struktur bylo k ničemu a naopak mnoho datových struktur by nedávalo smysl bez algoritmů. My si proto budeme povídat o datových strukturách a algoritmech společně.
Úlohy, které najdeš dále, se zabývají nějakou datovou strukturou nebo algoritmem. Jsou uspořádány s rostoucí obtížností a může se stát, že pro pochopení složitějších úloh je často potřeba mít vštípené detaily struktury předchozí.
", "position": [ -282.6019515991211, 121.71680343151093 ] }, { "id": "jak-resit-ulohy", "type": "text", "requires": [ "start" ], "comment": "kecy o tom, jak se může řešit taková úloha", "title": "Jak řešit úlohy?", "htmlContent": "", "position": [ -2.4084014892578125, -61.00055694580078 ] }, { "id": "KSP-h-ulohy", "type": "label", "comment": "...", "requires": [], "title": "KSP-H úlohy", "position": [ 2225.972201347351, 625.0823974609375 ] }, { "id": "label_matematicke", "type": "label", "comment": "...", "requires": [], "title": "Potřeba matematického pohledu", "position": [ 1671.7270526885986, 2.2010104656219482 ] }, { "id": "label-1d-pole", "type": "label", "comment": "...", "requires": [], "title": "Pole", "rotationAngle": 337, "position": [ -228.8243637084961, 291.3138885498047 ] }, { "id": "label-2d-pole", "type": "label", "comment": "...", "requires": [], "title": "2D pole", "rotationAngle": 340, "position": [ -904.0786743164062, 485.8621520996094 ] }, { "id": "label-grafy", "type": "label", "comment": "...", "requires": [], "title": "Grafy", "rotationAngle": 342, "position": [ -1560.4506225585938, -15.361473083496094 ] }, { "id": "label-grafy-pracovni-poznamka", "type": "text", "comment": "Chtělo by to grafy celé nějak přeuspořádat. Je to přeci jen dost široké téma.", "requires": [ "31-Z3-3" ], "title": "Grafy, ale neuspořádané", "htmlContent": "undefined
", "position": [ -1597.372802734375, 129.89034271240234 ] }, { "id": "label-retezce", "type": "label", "comment": "...", "requires": [], "title": "Textové řetězce", "rotationAngle": 326, "position": [ -523.4024200439453, -451.524658203125 ] }, { "id": "label-trizeni", "type": "label", "comment": "", "requires": [], "title": "Třídění", "position": [ 128.4343719482422, 677.8480176925659 ] }, { "id": "label-uvod", "type": "label", "comment": "...", "requires": [], "title": "Úvod", "position": [ -3.4084014892578125, -206.00055694580078 ] }, { "id": "label-zelvy", "type": "label", "comment": "...", "requires": [], "title": "Želvy", "rotationAngle": 43, "position": [ 587.7714233398438, 399.8365783691406 ] }, { "id": "placeholder-kurz-programovani", "type": "text", "comment": "...", "requires": [ "programovani" ], "title": "Placeholder pro základní kurz programování", "htmlContent": "Tady by měl začítat kurz programování. Chceme ze stávajícího kurzu vybrat úlohy a dát je sem. Postupně by asi také bylo fajn to celé rozvinou do větších detailů.
", "position": [ 249.0419158935547, 81.61006927490234 ] }, { "id": "Pole", "type": "text", "comment": "...", "requires": [ "data" ], "title": "Pole", "htmlContent": "kecy
", "position": [ -275.86041259765625, 333.4576416015625 ] }, { "id": "pole-s-poradim", "type": "text", "comment": "...", "requires": [ "Pole" ], "title": "Seřazená pole", "htmlContent": "undefined
", "position": [ -277.13867950439453, 602.650089263916 ] }, { "id": "programovani", "type": "text", "comment": "...", "requires": [ "jak-resit-ulohy" ], "title": "Programování", "htmlContent": "Počítače nemluví lidskou řečí. Aspoň zatím. Pokud jim chceme vysvětlit nějaký komplikovanější problém, potřebujeme mluvit správnou řečí - nějakým programovacím jazykem.
Programovacích jazyků je více a každý se hodí na něco jiného. S roustoucími zkušenostmi se pravděpodobně naučíš přecházet mezi několika programovacími jazyky podle toho, jaký problém zrovna řešíš.
Pro řešení úloh Ti doporučujeme Python 3. Pokud se ho chceš naučit, můžeš zkusit projít kurzem, který jsme pro Tebe připravili.
", "position": [ 93.54621887207031, 15.45430612564087 ] }, { "id": "slozene-datove-struktury", "type": "text", "comment": "...", "requires": [ "Pole" ], "title": "Složené datové struktury", "htmlContent": "kecy
", "position": [ -557.9161376953125, 351.5024108886719 ] }, { "id": "start", "type": "text", "requires": [ "label-uvod" ], "comment": "úvodní kecy o tom, jak to celé funguje", "title": "Start", "htmlContent": "Aktuálně je celý projekt v BETA režimu. Pokud najdeš libovolnou chybu nebo pokud Tě napadá, že by se dalo cokoliv vylepšit (a ideálně jak), dej prosím vědět Vaškovi a Standovi. Díky!
Pokud tě napadá, jak by se tento projekt mohl jmenovat, dej nám vědět!
Něco se můžeš naučit a z toho můžeš mít dobrý pocit. Nic jiného teď neslibujeme. Splnit zde úlohu je to samé jako splnit ji ve cvičišti. Navíc ono k úlohám jsou většinou přístupná vzorová řešení, takže soutěžit zde nedává moc smysl.
Ohledně vzorových řešení – je čistě na Tobě, zda budeš úlohy řešit poctivě, nebo jestli si budeš číst řešení před tím, než vymyslíš něco vlastního. Zabránit Ti v tom nedokážeme a ani nechceme. Pokud se chceš něco naučit, nebo si něco procvičit, tak doporučujeme vzorová řešení otevírat až po vlastním řešení, případně když se zasekneš. Získáš tak z kurzu nejvíce.
", "position": [ -1.7545125484466553, -144.6544418334961 ] } ], "clusters": { "Triviální výpočet": [ "31-Z1-1" ], "Triviální průchod 1D pole": [ "26-Z1-1" ], "Triviální průchody 2D pole": [ "26-Z1-2", "26-Z4-3", "29-Z3-1", "31-Z1-4" ], "Želvy": [ "29-Z1-1", "29-Z2-1", "29-Z4-3" ], "Komplexnější práce s poli": [ "26-Z2-4", "29-Z1-3" ], "Práce s čísly": [ "26-Z2-2", "26-Z3-3", "26-Z4-1" ], "Práce s řetězci": [ "26-Z1-3", "26-Z2-3", "26-Z3-2", "29-Z3-2" ], "Grafy": [ "26-Z1-4", "26-Z3-4", "26-Z4-4", "29-Z1-4", "31-Z1-2", "31-Z3-2", "31-Z3-3" ], "Voser": [ "26-Z3-1", "29-Z3-3" ], "Nápad": [ "26-Z4-2" ], "matematické": [ "30-1-4" ] } }