Nietuzinkowy algorytm

0

Witam,
Mam taki problem i nie wiem za bardzo z której strony to ugryźć. Wiem, że wygląda to bardzo wiejsko, pierwszy post na forum i od razu chcę pomocy... No ale nie radzę sobie, a pomocy potrzebuję.

Nie chcę, żeby ktoś mi to napisał deska w deskę. Byłbym szczęśliwy, jakby ktoś mi podsunął jakiś algorytmik (pseudokod albo opisowo, albo w jakiś zrozumiały sposób) jak to zrobić.

Proszę o pomoc :)

ps. drugi z przykładów ma chyba błędną odpowiedź...

=================

Zwykła kostka do gry ma nastepujaca siatke.

    |5|
---------
|6|4|1|3|
---------
    |2|

Zmodyfikowano ja w ten sposób, e na sciankach umieszczono nalepki z dodatnimi liczbami
całkowitymi. Rozpatrujemy gre, która odbywa sie na planszy składajacej sie z kwadratowych
pól o rozmiarach odpowiadajacych rozmiarom scianki kostki. Plansza ma 4 rzedy pól i jest
nieograniczona w prawo i lewo. Rzedy maja numery od 1 do 4 liczac od dołu do góry.
Kolumny maja całkowite numery wzrastajace od lewej do prawej. Kade pole jest
identyfikowane przez pare (x, y), gdzie x jest numerem kolumny, a y jest numerem rzedu.
Gra rozpoczyna sie na wskazanym polu planszy z kostka ustawiona tak, e scianka z jednym
oczkiem jest na wierzchu i scianka z dwoma oczkami jest ustawiona w kierunku zawodnika.
Ruch zawodnika polega na obróceniu kostki wokół krawedzi i przetoczeniu jej na pole
sasiadujace (w poziomie lub pionie). Liczba widoczna na nalepce na wierzchu kostki po
wykonaniu ruchu jest kosztem tego ruchu.
Celem gry jest przetoczenie kostki z pola startowego na wskazane pole docelowe tak, by
suma kosztów wszystkich ruchów była minimalna.
Zadanie
Napisac program, który
• odczytuje z pliku wejsciowego opis kostki, współrzedne pola startowego i
współrzedne pola docelowego,
• oblicza minimalny koszt przetoczenia kostki z pola startowego na pole docelowe,
• zapisuje wynik do pliku wyjsciowego.
Wejscie
Plik wejsciowy o nazwie dane.txt jest plikiem tekstowym o dwóch wierszach. Pierwszy
wiersz zawiera szesc liczb całkowitych l1, l2, l3, l4, l5, l6, (1 =< li =< 50) oddzielonych
pojedynczymi spacjami. Kade li jest liczba zapisana na nalepce na sciance kostki
zawierajacej i oczek. Drugi wiersz pliku wejsciowego zawiera cztery liczby całkowite x1, y1,
x2, y2 (-109 =< x1, x2 =< 109; 1 =< y1, y2 =< 4) oddzielone pojedynczymi spacjami. Liczby x1, y1 sa
odpowiednio numerami kolumny i wiersza pola startowego, a x2, y2 – numerami kolumny i
wiersza pola docelowego.
Wyjscie
Pierwszy i jedyny wiersz tekstowego pliku wyjsciowego o nazwie wynik.txt powinien
zawierac minimalny koszt przetoczenia kostki z pola startowego na pole docelowe.
Przykłady
a) Dla danych wejsciowych:
1 2 8 3 1 4
-1 1 0 2
prawidłowa odpowiedz to:
7
b) a dla danych:
1 1 49 4 49 6
8 3 8 2
prawidłowa odpowiedzia jest:
16

0

robisz graf i zapuszczasz algorytm najkrotszy sciezek np Dijkstre ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.