Veskere pisemne materialy byly povoleny, na okne byl notebook, kam si kdokoliv mohl jit precist manpage nebo si klidne i nejaky prikaz rovnou vyzkouset - pokud si nejste 100% jisti, jak se neco zachova (nebo treba kolik tech zpropadenych polozek ma vystup ls -l), docela to doporucuji, me to zachranilo od minimalne jednoho nepekneho omylu. Vetsinu casu je notebook volny.
Zadani vypadalo nasledovne: Mate ftp klienta, ktery na vstupu bere prikazy user, cd, lcd, ls a get, a generuje nejaky pro vas zajimavy vystup. (Jak vypada vystup a jak se prikazy pouzivaji se podrobneji rozebere pri zadavani, o programu ftp nemusite predem nic vedet.) ls vylistuje obsah vzdaleneho adresare, vystup je jako z normalniho UNIXoveho ls -l. get stahne dany soubor ze serveru na lokalni disk. Ani jeden z prikazu neumi pracovat rekurzivne.
Pokud chcete program ftp pouzit, zavolate ho jako "ftp -n adresa.serveru", jako prvni prikaz musite poslat "user ftp root@" (prikazy jsou na zvlastnich radkach). Pak posilate programu ruzne prikazy, na vystupu pak program zopakuje vzdy prikaz, ktery mu poslete, a v pripade ls nasleduje "total 1234", seznam souboru jako z ls -l a ukoncene je to radkou "226 ...neco...". Vystup prikazu get vas nemusi zajimat, az na to, ze muze take vygenerovat radku 226. Priklad vystupu:
Kód: Vybrat vše
ls
total 2
drwxr-xr-x 3 pasky users 4096 Apr 29 13:00 .media
-rw-r--r-- 1 pasky users 2562 Sep 10 2004 index.html
226 blabla
get index.html
asdfhjklqwer
226 foobar
ls .media
total 1
-rw-r--r-- 1 pasky users 51 Sep 10 2004 arrow.gif
226 blabla
Zvlast upozornil na to, ze jedno z hodnoticich kriterii bude pocet volani prikazu ftp, ktery by mel byt minimalni (jak nam rekl po pisemce, minimum je hloubka stromu; uz pri zadavani nas varoval pred resenim "co get to jedno volani ftp"). Zakladni problem byl tedy jednak si vubec umet poradit s vystupem prikazu ftp a spravne ho zpracovat, pak vymyslet, jak zjistit, co je potreba stahovat a co je potreba smazat, a zaroven to zoptimalizovat, aby byl pocet volani prikazu ftp minimalni.
Ze zacatku jsem nasadil dost volne tempo, ale nakonec jsem to stihl dopsat na minutu jen tak tak. Po zkousce si nechal hodinu na projiti pisemek (ale obvykle to pry byva dele), pak oznamil postupujici do semifinale. Tri lide to dostali rovnou (za 1), jeden clovek vypadl (a jeden to vzdal behem pisemky). Ostatni se rozschedulovali na zbytek odpoledne, rikal, ze s kazdym stravi maximalne deset minut. Dale jsem zapas nesledoval...