od tomasslavicek » 23. 1. 2010 10:30
Tak zápočet dostalo 6 (možná 7) lidí, z nějakých 22 přihlášených. Úloha nebyla těžká, ale opravdu to chtělo, aby člověk už měl něco naprogramováno. Odevzdávat se začalo až cca půl hodiny před koncem, bylo tam hodně psaní. Co jsem viděl, u většiny lidí to kontroloval poměrně poctivě, chtěl vidět výsledky všech vstupů, náhled do kódu jak jste reprezentovali hady a říct, jak jste řešili detekci cyklů. Naopak mi vůbec nekontroloval načítání vstupu, nebo jak jsem řešil ostatní metody. Čas se na konci neprodlužoval, hlavním těžištěm problému bylo to hlavně stihnout odladit. Pokud jste se ve výsledku lišili někde o jedničku, nebyl to problém.
Detekci cyklů jsem taky řešil zapamatováním stavů všech hadů ve všech krocích a pak lineárním průchodem a kontrolováním, jestli už ten stav nastal. Pro velká bludiště sice výpočet trval asi 15 sekund, ale uznal mi to. Lépe by se to asi dalo řešit pomocí HashSetu nebo Dictionary. Na co chtělo ale dát velký pozor, pokud by bylo bludiště šířky 20 bez stěn na kraji a had měl v předpisu jet 100 políček rovně, znovu stejný stav nenastal po 20 krocích, ale až po nějakých 100 nebo 101. Potom by totiž mohl ještě zahnout a třeba narazit a cyklení by to nebylo.
Tak zápočet dostalo 6 (možná 7) lidí, z nějakých 22 přihlášených. Úloha nebyla těžká, ale opravdu to chtělo, aby člověk už měl něco naprogramováno. Odevzdávat se začalo až cca půl hodiny před koncem, bylo tam hodně psaní. Co jsem viděl, u většiny lidí to kontroloval poměrně poctivě, chtěl vidět výsledky všech vstupů, náhled do kódu jak jste reprezentovali hady a říct, jak jste řešili detekci cyklů. Naopak mi vůbec nekontroloval načítání vstupu, nebo jak jsem řešil ostatní metody. Čas se na konci neprodlužoval, hlavním těžištěm problému bylo to hlavně stihnout odladit. Pokud jste se ve výsledku lišili někde o jedničku, nebyl to problém.
Detekci cyklů jsem taky řešil zapamatováním stavů všech hadů ve všech krocích a pak lineárním průchodem a kontrolováním, jestli už ten stav nastal. Pro velká bludiště sice výpočet trval asi 15 sekund, ale uznal mi to. Lépe by se to asi dalo řešit pomocí HashSetu nebo Dictionary. Na co chtělo ale dát velký pozor, pokud by bylo bludiště šířky 20 bez stěn na kraji a had měl v předpisu jet 100 políček rovně, znovu stejný stav nenastal po 20 krocích, ale až po nějakých 100 nebo 101. Potom by totiž mohl ještě zahnout a třeba narazit a cyklení by to nebylo.