Vì ngày mai là ngày 4 tháng 5, đây là một bài đăng nhỏ theo chủ đề Chiến tranh giữa các vì sao để chuẩn bị tinh thần cho tất cả những câu chuyện dở khóc dở cười vào ngày mai.
QUAY LẠI
Trong một phiên họp của thượng viện thiên hà, tất cả các thượng nghị sĩ đang ngồi trong một n*n
lưới. Một đợt bùng phát bất ngờ của bệnh cúm JarJar (kéo dài mãi mãi và khiến người nhiễm bệnh nói như JarJar Binks) khiến một số thượng nghị sĩ bị nhiễm bệnh.
Đây là một ví dụ với một 6*6
lưới trong đó các X
thượng nghị sĩ bị nhiễm bệnh, danh sách tương ứng là [[0,5],[1,4],[2,3],[2,1],[3,3],[3,0],[4,5],[0,5]]
:
Sau đó, nhiễm trùng bắt đầu lây lan từng bước. Hai thượng nghị sĩ liền kề nếu họ chia sẻ toàn bộ cạnh trên lưới (nghĩa là trên cùng, dưới cùng, phải, trái), có nghĩa là chúng tôi loại trừ các đường chéo.
Chúng tôi có thể kết luận một thượng nghị sĩ có thể tiếp giáp với 2,3 hoặc 4 thượng nghị sĩ khác và yêu cầu các quy tắc sau đây về sự lây nhiễm:
- Một thượng nghị sĩ đã bị nhiễm vẫn bị nhiễm mãi mãi
- Một thượng nghị sĩ bị nhiễm ở một bước nếu anh ta tiếp giáp với 2 thượng nghị sĩ bị nhiễm bệnh ở bước trước
Đây là một ví dụ với lưới trước đó cho thấy 2 bước đầu tiên của việc lây nhiễm:
Sau các bước nexts, tất cả các thượng viện sẽ bị nhiễm bệnh
NHIỆM VỤ CỦA BẠN
Mã của bạn không cần xử lý các đầu vào không hợp lệ như danh sách lớn hơn n*n
hoặc tọa độ không phân biệt.
n
Ví dụ, mã của bạn sẽ lấy một danh sách các cặp số nguyên (hoặc lưới nhị phân hoặc bất kỳ định dạng nào phù hợp với ngôn ngữ của bạn) và một số nguyên (có thể không cần thiết nếu bạn sử dụng định dạng khác ngoài danh sách), ví dụ:
8 [[1,2],[1,1],[7,4],[2,7],[4,3]]
n là cạnh của lưới có nghĩa là lưới sẽ là lưới * n và danh sách các cặp số nguyên là tọa độ của các ô của các thượng nghị sĩ bị nhiễm ban đầu.
Phía dưới bên trái của lưới là [0,0] và phía trên bên phải là [n-1, n-1]. Trên cùng bên trái là [0, n-1].
Mã của bạn phải xuất ra một số nguyên:
-1
hoặc giá trị sai lệch hoặc lỗi nếu toàn bộ lưới sẽ không bao giờ bị nhiễm hoàn toàn hoặc số bước tối thiểu cần thiết để lây nhiễm toàn bộ lưới
Các trường hợp thử nghiệm
6 [[0,5],[1,4],[2,3],[2,1],[3,3],[3,0],[4,5],[5,0]] => 7
4 [[1,1][0,3][1,0][3,0][3,3]] => 9
Hãy nhớ rằng đây là golf-code , do đó, câu trả lời ngắn nhất tính bằng byte sẽ thắng!
n
gì? Có một giá trị tối đa?
CellularAutomaton