Niech szachownica 8x8 będzie reprezentowana przez dowolne dwie różne wartości, przy czym jedna wartość będzie pustym kwadratem, a druga królową. W poniższych przykładach używam 0 jako pustych kwadratów i 1 jako królowych. Na przykład:
jest dany przez
1 0 1 1 1 0 0 0
1 0 1 0 1 0 1 1
1 0 1 0 1 1 0 1
0 1 0 1 0 1 0 0
0 1 1 0 0 1 0 1
1 0 0 0 1 0 0 0
0 1 0 0 0 1 1 1
0 1 1 1 0 1 0 1
Rozważ liczbę par królowych, które atakują każdą z nich, co najmniej o jedno pole kwadratowe (dla przypomnienia królowe atakują ortogonalnie i po przekątnej). W powyższym przykładzie poniższy niesamowity brzydki schemat pokazuje wszystkie te pary jako strzałki.
Znaleziono powyżej 43 par, podając następujący przypadek testowy:
Input:
1 0 1 1 1 0 0 0
1 0 1 0 1 0 1 1
1 0 1 0 1 1 0 1
0 1 0 1 0 1 0 0
0 1 1 0 0 1 0 1
1 0 0 0 1 0 0 0
0 1 0 0 0 1 1 1
0 1 1 1 0 1 0 1
Output: 43
Wyzwanie
Napisz program, który, biorąc pod uwagę stan planszy reprezentowany przez dwie różne wartości, wypisuje liczbę par królowych, które atakują się nawzajem, z co najmniej jednym kwadratem między nimi.
- Możesz wpisać w dowolnym dogodnym formacie, który używa dwóch wartości do przedstawienia pustych kwadratów i królowych, np. Ciąg 64 "." Dla pustych kwadratów i "Q" dla królowych według rzędów od dołu do góry, 8x8 macierz booleanów, lista liczb całkowitych 0 i 1 itd., o ile jest to wyjaśnione w twoim rozwiązaniu
- Dane wyjściowe to liczba całkowita
- Obowiązują standardowe metody we / wy, a standardowe luki są zabronione
- To jest kod golfowy, więc wygrywa najkrótsza odpowiedź w bajtach
Przypadki testowe:
W formacie 0 i 1, gdzie 0 to puste kwadraty, a 1 to królowe:
Input:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Output: 0
Input:
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Output: 0
Input:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Output: 1
Input:
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0
0 0 0 0 1 0 1 0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 0
0 0 0 0 0 0 0 0
Output: 10
Input:
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Output: 4
Input:
1 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
Output: 11