Żółw chce poruszać się wzdłuż siatki, aby dostać się do jedzenia. Chce wiedzieć, ile ruchów zajmie mu dotarcie.
Ponieważ jest wolny, teleportery ustawiają się wokół jego domeny, z której będzie korzystać, jeśli skróci to jego ścieżkę. Lub unikaj ich, jeśli wydłuży to jego drogę.
Poznaj żółwia
🐢
Żółw żyje na siatce
Żółw nie może jednak przejść na plac z górą
Żółw chce zjeść swoją truskawkę i chce wiedzieć, ile czasu zajmie dojście do jego truskawek
Wyzwanie
Biorąc pod uwagę początkową konfigurację wyjściową siatki, liczbę ruchów zajmie żółwia, aby osiągnąć swoją truskawkę.
Zasady
Możesz założyć, że siatka wejściowa ma rozwiązanie
Każda siatka będzie miała tylko jeden,
strawberry
dwaportals
i jedenturtle
Siatkę wejściową można wprowadzić w dowolnym dogodnym formacie
Powinieneś traktować
teleporters
przedmioty jednorazowego użytkuTurn, w którym żółw porusza się na pole
teleporter
, jest już na odpowiednimteleporter
. Nigdy nie przechodzi nateleporter
i pozostaje tam, aby wykonać ruchNajkrótsza ścieżka nie musi korzystać z portalu
Żółw nie może przejść do górskich kafelków
Można użyć dowolnego znaku ASCII lub całkowitą do reprezentacji
mountains
,turtle
,empty grid square
,strawberry
Możesz użyć tego samego znaku lub dwóch różnych znaków ASCII lub liczb całkowitych do przedstawienia
teleporter
parSiatka może mieć więcej niż jedną ścieżkę o tej samej najkrótszej długości
To jest golf golfowy
Wyjaśnienia zasad
- Powinieneś traktować
teleporters
przedmioty jednorazowego użytku.
Można to rozwiązać tylko dwukrotnie wchodząc i wychodząc z portali. W momencie dokonywania tego wyjaśnienia oba rozwiązania działały, zakładając, że były albo jednorazowego użytku, albo nie było powodu, aby wypróbować wcześniej używane kwadraty. Aby uniknąć zerwania z ciężko wypracowanymi rozwiązaniami, wydawało się to najlepszym sposobem na uwzględnienie tego ustawienia. Dlatego byłoby to uważane za nieprawidłową siatkę.
Przypadki testowe sformatowane jako listy
[ ['T', 'X', 'X', 'S', 'X'], ['X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 3
[ ['T', 'M', 'X', 'S', 'X'], ['X', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'O'] ] --> 4
[ ['T', 'M', 'X', 'S', 'O'], ['O', 'M', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 2
[ ['T', 'M', 'X', 'S', 'X'], ['O', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'X'] ] --> 4
[ ['T', 'M', 'S', 'X', 'O'], ['X', 'M', 'M', 'M', 'M'], ['X', 'X', 'X', 'X', 'O'] ] --> 7
[ ['T', 'X', 'X', 'S', 'X'], ['O', 'M', 'M', 'M', 'X'], ['X', 'X', 'O', 'X', 'X'] ] --> 3
Przypadki testowe sformatowane dla ludzi
T X X S X
X X X X X
X X X X X --> 3
T M X S X
X M X X X
O X X X O --> 4
T M X S O
O M X X X
X X X X X --> 2
T M X S X
O M X X X
O X X X X --> 4
T M S X O
X M M M M
X X X X O --> 7
T X X S X
O M M M X
X X O X X --> 3
Kredyty
Projekt i struktura: Głodna mysz Arnauld
Proponowane wyzwania Edytuj porady: Kamil-drakari , beefster