Nápovedná šifra C
Zadanie
Existuje práve jeden spôsob ako uložiť päť spomedzi týchto útvarov do radu za seba tak, aby do seba všetky susediace dvojice presne pasovali. Uložte ich tak a prečítate si riešenie tejto nápovednej úlohy.
Namiesto riešenia úplne hrubou silou sa aj tu oplatilo trochu zamyslieť. Pekný spôsob, ako si riešenie úlohy zľahčiť, je použiť algoritmickú techniku "meet in the middle".
O čo ide? Chceme nájsť jediný spôsob, ako za seba uložiť päť dielikov. My budeme hľadať tretí z nich, teda ten, ktorý bude v strede riešenia. Toto je jediný dielik, ktorý má nasledovné vlastnosti:
- Existujú dva dieliky ktoré sa dajú priložiť za neho.
- Existujú dva dieliky ktoré sa dajú priložiť pred neho.
Obe tieto vlastnosti sa overujú výrazne ľahšie ako keby sme sa snažili priamo hľadať celú päticu.
Tiež sa oplatí spraviť si "reverse lookup", teda postupne pre každý vzor výstupkov a jamiek si vypísať súradnice dielikov, ktoré ho majú. (Toto sa dá spraviť na jeden prechod zadaním.)
Riešením je slovo AORTA.
Diskusia
Táto diskusia je už uzatvorená, nie je možné pridávať ďalšie príspevky.
07.06.2016 13:41 |
Malic (Ausser Betrieb)
|
Po 10min analyze skonstatovane: Kazdy rok byva jedna sifra co je mega pracna a nestoji za to. Pre nas to bola napoveda C :)
|