Đặt một bàn cờ 8x8 được đại diện bởi bất kỳ hai giá trị riêng biệt nào, với một giá trị là một hình vuông trống và cái còn lại là một nữ hoàng. Trong các ví dụ sau, tôi sử dụng 0 là các ô vuông trống và 1 là các nữ hoàng. Ví dụ:
được đưa ra bởi
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
Hãy xem xét số lượng cặp nữ hoàng đang tấn công mỗi cái cách nhau ít nhất một ô vuông (như một lời nhắc nhở, nữ hoàng tấn công trực giao và theo đường chéo). Trong ví dụ trên, sơ đồ xấu xí đáng kinh ngạc sau đây cho thấy tất cả các cặp này là mũi tên.
Có 43 cặp được tìm thấy ở trên đưa ra trường hợp thử nghiệm sau:
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
Thử thách
Viết chương trình, với trạng thái bảng được biểu thị bằng hai giá trị riêng biệt, đưa ra số lượng cặp kiến chúa tấn công lẫn nhau với ít nhất một ô vuông ở giữa chúng.
- Bạn có thể nhập bất kỳ định dạng nào thuận tiện nhất, sử dụng hai giá trị để biểu thị các ô vuông và nữ hoàng trống, ví dụ: một chuỗi 64 "." Cho các ô vuông trống và "Q" cho các nữ hoàng theo hàng từ dưới lên trên, 8 x 8 ma trận booleans, danh sách các số nguyên 0 và 1, v.v, miễn là nó được giải thích trong giải pháp của bạn
- Đầu ra là một số nguyên
- Các phương pháp I / O tiêu chuẩn được áp dụng và các sơ hở tiêu chuẩn bị cấm
- Đây là mã golf nên câu trả lời ngắn nhất trong byte thắng
Các trường hợp thử nghiệm:
Sử dụng định dạng 0 và 1, với 0 là hình vuông trống và 1 là nữ hoàng:
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