Proqramçı və altıbucaqlı
Zadənin məqsədi 7 altıbucaqlı taxta parçadan ibarət olan tapmacanı həll etməkdir (bundan sonra onları sadəcə "altıbucaqlılar" adlandıracağıq). Bu altıbucaqlıların hər biri taxta əsasda yerləşdirilmiş 7 mıxa yerləşdirilməlidir. Mıxlar Şəkil 1-də göstərildiyi kimi nömrələnmişdir və 0-dan 6-ya qədər nömrələnir. Altıbucaqlılar isə böyük hərflərlə 'A'-dan 'G'-yə qədər nömrələnmişdir (bax Şəkil 2). Hər altıbucaqlının tərəfinə 0-dan 9-a qədər tam ədəd təyin edilmişdir.
Görmək olar ki, 7 altıbucaqlını 7 mıxa yerləşdirəndə, hər xarici altıbucaqlının 3 tərəfi və 0 mıxındakı altıbucaqlının bütün tərəfləri digər altıbucaqlıların tərəfləri ilə qonşudur. Tapmacanı həll etmək üçün bütün 7 altıbucaqlının yerləşdirilməsini və istiqamətini tapmaq lazımdır ki, bir-birinə bitişik olan altıbucaqlıların üzərində yazılmış rəqəmlər eyni olsun (bax Şəkil 3).
Şəkil 3 - Həll edilmiş tapmacanın yuxarıdan görünüşü
Proqram 7 altıbucaqlının təsvirini oxumalı, bu 7 altıbucaqlını istifadə edərək həlli tapmalı (əgər mövcuddursa) və tapmacanın həllini təsvir etməlidir. Əgər həll tək deyilsə, onlardan hər hansı birini çıxara bilərsiniz (bir həll tapıldıqda, 0 mıxındakı altıbucaqlını döndərərək və müvafiq olaraq digər altıbucaqlıları döndərərək digər həlləri əldə etməyə çalışa bilərsiniz). Əgər həll mövcud deyilsə, proqram müvafiq mesajı çıxarmalıdır. Bir tapmacanın həllini çıxardıqdan sonra, proqram növbəti tapmacanın məlumatlarını oxumalı və giriş məlumatlarının sonuna qədər davam etməlidir.
Giriş verilənləri
Giriş məlumatları bir neçə testdən ibarətdir, hər biri altıbucaqlıların dəstini təsvir edir. İlk 7 sətirdən hər biri 6 rəqəm (boşluqsuz) ehtiva edir. Bu, hər altıbucaqlının 6 tərəfinə yazılmış rəqəmlərdir. Birinci sətirdə 'A' altıbucaqlısına yazılmış rəqəmlər verilmişdir. İkinci sətirdəki rəqəmlər 'B' altıbucaqlısına aiddir və s. 7-ci sətirə qədər, hansı ki, 'G' altıbucaqlısına aiddir. Hər sətirdəki ilk rəqəm "12 Saat" və ya "Yuxarı" mövqeyində olan tərəfin rəqəmidir. Növbəti 5 rəqəm "Yuxarı" tərəfdən saat əqrəbi istiqamətində yerləşən tərəflərin rəqəmləridir. Məsələn, 2 şəkilindəki altıbucaqlı 123456 sətiri ilə təsvir edilə bilər. 3 şəkilində göründüyü kimi, altıbucaqlının tərəfləri mütləq fərqli rəqəmlər ehtiva etmir.
Altıbucaqlıların dəstini təsvir edən 7 sətirdən sonra, altıbucaqlıların dəstləri arasında ayırıcı kimi istifadə olunan 1-ci sütunda bir ulduz (*) olan bir sətir gəlir. Cari altıbucaqlı dəstinin cavabını tapdıqdan sonra, faylın sonuna qədər, proqram növbəti altıbucaqlı dəstini təsvir edən 7 sətiri oxumalıdır - yeni tapmacanı həll etmək lazımdır. Ulduz hər dəstin sonunda, o cümlədən sonuncuda gəlir.
Çıxış verilənləri
Hər giriş altıbucaqlı dəsti üçün həlli çıxarın. Həldə hansı altıbucaqlının 0 mıxına, hansı altıbucaqlının 1 mıxına, ... və hansı altıbucaqlının 6 mıxına yerləşdirilməli olduğunu göstərmək lazımdır. Hər altıbucaqlının istiqamətini də təsvir etmək lazımdır. Beləliklə, 3 sütunlu məlumat çıxarılmalıdır. 1-ci sütun 0-dan 6-ya qədər olan mıxların siyahısını ehtiva edir. 2-ci sütun 0 mıxına, 1 mıxına, ... və 6 mıxına yerləşdirilən altıbucaqlıların təsvir edildiyi hərflərin siyahısını ehtiva edir, məhz bu qaydada. 3-cü sütunda 2-ci sütunda yazılmış altıbucaqlının tərəflərindəki rəqəmlərin siyahısı verilir. Rəqəmlər tapmaca həll edildikdə "YUXARI" mövqeyində olan tərəfdən başlamalıdır. Növbəti 5 rəqəm saat əqrəbi istiqamətində olan tərəflərə uyğundur. Hər sütun başlığa malik olmalıdır. Birinci sütunun başlığı "PEG". İkinci sütunun başlığı "HEX", üçüncü sütunun başlığı isə "POSITION".
Əgər hər hansı bir altıbucaqlı dəsti üçün həll mövcud deyilsə, "No solutions possible" mesajı çıxarılmalıdır. Hər həll təsvirindən sonra (və ya "No solutions possible" mesajından sonra) tapmacaların həllərini bir-birindən ayırmaq üçün 36 ulduzdan "*" ibarət bir sətir çıxarın.