Trong thử thách này, nhiệm vụ của bạn là xây dựng một biểu đồ vô hướng từ một chuỗi các lệnh. Có một chỉ thị cho mỗi số nguyên không âm và mỗi biến đổi một biểu đồ đã cho thành một biểu đồ mới.
- Chỉ thị
0
: Thêm một nút ngắt kết nối mới. - Chỉ thị
1
: Thêm một nút mới và kết nối nó với mọi nút hiện có. - Chỉ thị
m > 1
: Loại bỏ tất cả các nút có mức độ (số lượng lân cận) chia hết chom
. Lưu ý rằng0
tất cả đều chia hếtm
, vì vậy các nút bị ngắt kết nối luôn bị loại bỏ.
Các chỉ thị được áp dụng từng cái một, từ trái sang phải, bắt đầu với biểu đồ trống. Ví dụ, chuỗi [0,1,0,1,0,1,3]
được xử lý như sau, được giải thích bằng nghệ thuật ASCII tuyệt vời. Chúng tôi bắt đầu với biểu đồ trống và thêm một đỉnh theo hướng dẫn 0
:
a
Sau đó, thêm một đỉnh khác và kết nối nó với đầu tiên, theo chỉ dẫn của 1
:
a--b
Chúng tôi thêm một đỉnh bị ngắt kết nối và sau đó một đỉnh được kết nối, theo chỉ dẫn bởi 0
và 1
:
a--b c
\ \ /
`--d
Chúng tôi lặp lại điều này một lần nữa, theo chỉ dẫn 0
và 1
:
,--f--e
/ /|\
a--b | c
\ \|/
`--d
Cuối cùng, chúng tôi loại bỏ các đỉnh độ 3 a
và b
, theo chỉ dẫn của 3
:
f--e
|\
| c
|/
d
Đây là biểu đồ được xác định bởi trình tự [0,1,0,1,0,1,3]
.
Đầu vào
Một danh sách các số nguyên không âm, đại diện cho một chuỗi các chỉ thị.
Đầu ra
Số lượng các nút trong biểu đồ được xác định bởi trình tự.
Các trường hợp thử nghiệm
[] -> 0
[5] -> 0
[0,0,0,11] -> 0
[0,1,0,1,0,1,3] -> 4
[0,0,0,1,1,1] -> 6
[0,0,1,1,0,0,1,1,2,5,7,0,1] -> 6
[0,0,1,1,1,1,5,1,4,3,1,0,0,0,1,2] -> 6
[0,0,1,1,0,0,1,1,5,2,3,0,0,1,1,0,0,1,1,3,4,0,0,1,1,2,1,1] -> 8
[0,0,1,1,0,0,1,1,2,5,7,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,8] -> 14
Quy tắc chi tiết
Bạn có thể viết một chức năng hoặc một chương trình đầy đủ. Số byte ngắn nhất sẽ thắng. Sơ hở tiêu chuẩn là không được phép. Hãy giải thích thuật toán của bạn trong câu trả lời của bạn.
Đã được một tuần, vì vậy tôi đã chấp nhận câu trả lời ngắn nhất. Nếu một cái thậm chí ngắn hơn xuất hiện sau, tôi sẽ cập nhật lựa chọn của mình. Một đề cập đáng trân trọng đến câu trả lời của Peter Taylor , trong đó một số người khác dựa trên, bao gồm cả người chiến thắng.