To wyzwanie jest inspirowane tą aplikacją . Przypadki testowe są zapożyczone z tej aplikacji.
Jest to wyzwanie z najszybszym kodem , którego celem jest rozwiązanie największych przypadków testowych w jak najkrótszym czasie. Udostępniono kilka mniejszych przypadków testowych, aby ludzie mogli szybciej testować swoje algorytmy.
Otrzymasz kwadratową siatkę wejściową o wymiarach n-po-n, gdzie 9 <= n <= 12 . Ta siatka zostanie podzielona na n obszarów, w których komórki każdego obszaru mają unikalne identyfikatory (użyję małych liter z al w tekście tutaj, ale możesz wybrać, co chcesz, na przykład liczby całkowite 1-12 ) .
Dane wejściowe mogą wyglądać następująco (opcjonalny format wejściowy):
aabbbbbcc
adddbbbcc
adeeecccc
adddefgcc
hhhdifggg
hdddifffg
hhhiifffg
hihiifffg
iiiiiiggg
Lub łatwiejsze do wizualizacji:
Wyzwanie:
Musisz umieścić 2 * n drzew w tym parku, zgodnie z następującymi zasadami:
- Powinny być dokładnie 2 drzewa na kolumnę i 2 drzewa na rząd
- Wszystkie obszary powinny mieć dokładnie 2 drzewa.
- Żadne drzewa nie mogą przylegać do innego drzewa, pionowo, poziomo lub po przekątnej
Rozwiązaniem powyższego układu jest:
Uwaga: dla każdej układanki jest tylko jedno rozwiązanie
Dodatkowe zasady:
- Formaty wejściowe i wyjściowe są opcjonalne
- Wyjściem może być na przykład lista indeksów, siatka z 1/0 wskazującą, czy w tej pozycji znajduje się drzewo, lub zmodyfikowana wersja danych wejściowych, w których drzewa są wskazane
- Czas wykonania musi być deterministyczny
- Program musi zakończyć się w ciągu 1 minuty na komputerze @ isaacg
- Specyfikacja: 4 procesory, procesor i5-4300U przy 1,9 GHz, 7,5G pamięci RAM.
- W przypadku, gdy Twój program nie może rozwiązać dwóch największych przypadków testowych w ciągu jednej minuty, czas na drugą co do wielkości ( n = 11 ) będzie twój wynik. Przegrasz z rozwiązaniem, które rozwiązuje największy przypadek.
Przypadki testowe:
Mógłbym edytować tę listę, jeśli wydaje się, że przesłania są dostosowane do tych przypadków testowych.
12 na 12 :
--- Input ---
aaaaabccccdd
aaaaabccccdd
aaaaabbbbddd
eeeafffgbghh
eeaafffgbghh
eefffffggghh
eeefijffghhh
iieiijjjjkhh
iiiiijjjjkhk
lljjjjjjjkkk
llllllkkkkkk
llllllkkkkkk
--- Solution ---
aaaaabcccCdD
aaaaaBcCccdd
aAaaabbbbdDd
eeeaffFgBghh
eeAaFffgbghh
eefffffGgGhh
EeefijffghhH
iiEiIjjjjkhh
IiiiijjjjkHk
lljJjJjjjkkk
lLllllkkKkkk
lllLllKkkkkk
11 na 11 :
--- Input ---
aaaaaaabbcc
adddabbbbcc
edddbbbbbbc
eddddbbbbbb
effffggghhh
effffgghhii
eefffjjhhii
eeeejjjhhii
eeejjjjkiii
jjjjjjkkiii
jjjjjkkkiii
--- Solution ---
aaAaaaabbCc
adddAbBbbcc
eDddbbbbbbC
eddDdBbbbbb
effffggGhHh
eFfffGghhii
eefFfjjhHii
EeeejjjhhiI
eeEjjjjKiii
JjjjJjkkiii
jjjjjkKkIii
10 na 10
--- Input ---
aaaaabccdd
aeaabbbccd
aeaabfbgcd
eeeaafggcd
eeeaafghcd
eeeiifghcd
ieiiigghcd
iiijighhcd
jjjjighhcd
jjjggghhdd
--- Solution ---
aaAaabccdD
aeaaBbBccd
aEaabfbgcD
eeeaaFgGcd
eEeAafghcd
eeeiiFghCd
IeiIigghcd
iiijigHhCd
JjJjighhcd
jjjgGghHdd
9 na 9
--- Input ---
aabbbbbcc
adddbbbcc
adeeecccc
adddefgcc
hhhdifggg
hdddifffg
hhhiifffg
hihiifffg
iiiiiiggg
--- Solution ---
aAbBbbbcc
adddbbBcC
adEeEcccc
AdddefgCc
hhhDiFggg
hDddifffG
hhhiIfFfg
HiHiifffg
iiiiiIgGg
--- Input ---
aaabbbccc
aaaabbccc
aaaddbcce
ffddddcce
ffffddeee
fgffdheee
fggfhhhee
iggggheee
iiigggggg
--- Solution ---
aaAbBbccc
AaaabbcCc
aaaDdBcce
fFddddcCe
fffFdDeee
fGffdheeE
fggfHhHee
IggggheeE
iiIgggGgg
There shall be exactly 2 trees per column, and 2 trees per row
więc brutalna siła jest prawdopodobnie niemożliwa.