tło
Stany Zjednoczone mają wyjątkową miłość do gerrymanderingu - celowej manipulacji okręgiem wyborczym w celu przewidzenia pewnych wyników głosowania. Niedawno przed Sądem Najwyższym została wniesiona sprawa przestępcza . Gerrymandering, szczególnie gdy jest związany z rasą, jest uznawany za nielegalny i powoduje konieczność przerysowania linii dystryktu.
Biorąc pod uwagę prostokątną mapę gminy (tablica 2d), narysujesz linie okręgów, aby pomóc twojej drużynie uzyskać jak najlepszą reprezentację. To znaczy, będziesz gerrymander. Każda gmina ma dwie strony 0
i 1
. Mapa będzie się składać z kwadratów z jednym 0
lub 1
na nich. Oto przykładowa mapa:
Wyzwanie
Zgrupujesz mapę w dzielnice, aby drużyna 1
otrzymała co najmniej liczbę okręgów określoną przez Wejście.
Wkład
Dane wejściowe będą składały się z mapy, liczby dzielnic do narysowania i minimalnej liczby dzielnic, które 1
partia musi wygrać (minimalny wynik).
Wydajność
Wynikiem będzie mapa dzielnic. Każda dzielnica będzie jednoznacznie składać się z dużej litery alfabetu. Tak, oznacza to, że nie będzie więcej niż 26 dzielnic.
Jeśli nie ma możliwości wyjścia, w przypadku gdy strona, którą wprowadzono, wygrywa wystarczającą liczbę okręgów, albo
- Drukuj „Próbowaliśmy ...”
- Błąd krytyczny, ponieważ partia została nieodwracalnie poszkodowana przez wyniki wyborów
- Lub obydwa
Zasady (również bardzo ważne)
- Wszystkie dzielnice muszą być ciągłe
- Dzielnice mogą nie mieć w sobie innych dzielnic
- Każda dzielnica musi mieć co najmniej cztery węzły. Dane wejściowe będą zgodne z regułami, co oznacza, że będą przynajmniej
number_of_districts * 4
węzły na mapie - Wynik każdej ze stron to liczba okręgów, w których ma większość
- Jeśli dzielnica ma taką samą liczbę
0
s i1
s, wówczas ani korzyści z podmiotami od niego - Normalne zasady oszukiwania
- To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach.
Przypadki testowe
1. Input 1. Output 2. Input 2. Output 3. Input 3. Output
districts: 5 Image and map districts: 3 Image below districts: 3 fatal error
min wins: 3 min wins: 3 min wins: 3
map: map: map:
00000110000 AAAAAAAAAAA 101101 101101
10000010000 AAAAAAAAAAA 100000 100000
10010000011 AAAAAAAAAAA 011011 011011
11001110000 BBBBBBBAAAA 111111 100111
00111111000 BBBBBBBAAAA
01111111000 CCCCCDDDAAA
01111111001 CCCCCDDDAAA
01000111100 EEEEEDDDDDD
00000001000 EEEEEDDDDDD
Oczywiście twój program powinien działać dla każdego ważnego przypadku testowego, nie tylko tych.