To wyzwanie jest oparte na Flow Free. Wersja online znajduje się tutaj: http://www.moh97.us/
Dostaniesz układankę i musisz wrócić, 1
jeśli układanka jest rozwiązana lub 0
nie.
Aby rozwiązać zagadkę, gracz musi utworzyć ścieżkę, aby połączyć każdą parę liczb za pomocą każdego pustego kwadratu dokładnie raz.
Przechodzisz do wymiarów kwadratu, a następnie x, y, c (gdzie c jest liczbą reprezentującą kolor) każdej kropki. Na przykład:
Gdyby 5,5
0,0,0
3,0,1
1,1,2
1,2,2
4,2,1
4,4,0
został ci przekazany, reprezentowałby:
0..1.
.2...
.2..1
....0
I powinien zwrócić 1.
Oto kilka innych problemów testowych:
5,2
2,0,1
0,1,2
4,1,2
reprezentuje:
..1..
2...2
i nie można go rozwiązać, ponieważ jest tylko 1 1
.
4,2
0,0,0
3,0,0
0,1,0
3,1,0
reprezentuje:
0..0
0..0
i nie można go rozwiązać, ponieważ obejmuje więcej niż 2 0
sekundy.
8,6
0,0,1
7,5,1
reprezentuje:
1.......
........
........
........
........
.......1
i nie jest do rozwiązania (ponieważ nie można użyć każdego kwadratu).
2,5
0,0,1
2,0,6
4,0,6
0,1,4
3,1,4
4,1,1
reprezentuje:
1.6.6
4..41
i nie można go rozwiązać, ponieważ nie można połączyć 1s.
6,3
1,0,4
5,0,1
0,1,4
1,1,3
5,1,3
0,2,2
3,2,2
5,2,1
reprezentuje:
.4...1
43...3
2..2.1
i nie można go rozwiązać, ponieważ nie można połączyć 1 (lub 3), ponieważ dwie ścieżki muszą koniecznie się przeciąć.
5,2
0,0,1
3,0,1
0,1,3
4,1,1
reprezentuje:
1..1.
3...3
i nie można go rozwiązać, ponieważ nie można użyć wszystkich kwadratów do zbudowania ścieżki.
2,2
0,0,0
1,1,0
reprezentuje:
1.
.1
i nie można go rozwiązać, ponieważ nie można tutaj użyć wszystkich kwadratów
Oto kilka innych testów:
5,5
0,3,0
0,4,1
1,2,2
1,3,1
2,0,0
3,0,4
3,1,2
3,3,5
3,4,4
4,4,5
powinien zwrócić 1
13,13
1,1,0
9,1,1
10,1,2
11,1,3
1,2,4
2,2,5
5,2,6
7,2,7
3,3,0
5,4,6
6,4,1
9,6,3
4,7,8
5,8,9
12,8,8
11,9,10
2,10,4
4,10,2
9,10,5
11,10,7
1,11,9
12,12,10
powinien zwrócić 1
7,7
0,0,0
0,1,1
1,1,2
2,1,3
4,2,4
0,3,1
5,3,3
0,4,4
2,4,5
5,4,2
0,5,0
1,5,5
3,5,6
3,7,6
powinien zwrócić 0
To jest golf golfowy i obowiązują standardowe zasady.
źródło
1
jeśli którakolwiek z nich odwiedzi wszystkie komórki i połączy wszystkie terminale. Oczywiście to podejście nie zakończy się w rozsądnym czasie dla niczego oprócz najmniejszejN
(liczby pustych komórek), ale nadal mamy matematyczną gwarancję, że algorytm ostatecznie zwróci prawidłową wartość.Odpowiedzi:
Haskell
Klucz
źródło