Điều này đã xảy ra sau đó, nhưng ngày nay mọi người đã chuyển sang IPv6 . (Đúng?)
Nhiệm vụ của bạn là viết một chương trình in ra tất cả các địa chỉ IPv6 .
Bạn nên viết một chương trình đầy đủ không có đầu vào và in địa chỉ IPv6, mỗi địa chỉ trên một dòng và không có đầu ra nào khác. Chương trình của bạn phải in tất cả 2 128 địa chỉ có thể, bao gồm cả những địa chỉ không hợp lệ. Mỗi địa chỉ phải được in chính xác một lần. Bạn có thể in các địa chỉ theo thứ tự bất kỳ.
Mỗi địa chỉ có thể được in đầy đủ, với 8 nhóm 4 chữ số thập lục phân cách nhau bằng dấu hai chấm, ví dụ:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
Theo quyết định của bạn, bạn có thể sử dụng bất kỳ chữ viết tắt tiêu chuẩn nào từ RFC 5952 :
- Các số 0 đứng đầu trong một nhóm có thể được bỏ qua, ngoại trừ
0
không thể viết tắt thêm. ::
có thể được sử dụng nhiều nhất một lần cho mỗi địa chỉ để viết tắt một chuỗi gồm một hoặc nhiều nhóm hoàn toàn không.- Các chữ số thập lục phân có thể sử dụng chữ thường hoặc chữ hoa.
Nếu bạn đạt được đề xuất đại diện từ RFC 5952 (chỉ chữ thường, đại diện ngắn nhất có thể, ::
được sử dụng càng sớm càng tốt nếu có nhiều nơi có thể sử dụng), bạn sẽ nhận được phần thưởng -20% .
Do kích thước của đầu ra, chương trình của bạn dự kiến sẽ không hoàn thành trong khi chúng tôi đang ngồi ở đó. Chương trình của bạn có thể bị gián đoạn bởi các phương tiện bên ngoài tại một số điểm ( Ctrl+ C, rút nguồn, Mạnh). Chương trình của bạn phải tạo đầu ra dưới dạng luồng, để sau khi chờ đợi hợp lý, thì nó sẽ tạo ra một số dòng. Về cơ bản, việc xây dựng một chuỗi khổng lồ trong bộ nhớ chỉ để in nó ở cuối là không được phép. Bất kỳ chương trình nào hết bộ nhớ trên PC PC tiêu chuẩn của MIT đều bị loại. (Tuy nhiên, nếu chương trình của bạn còn lại để chạy đủ lâu, nó phải in tất cả các địa chỉ IPv6 và sau đó thoát.)
(Nếu điều kiện này là sự cố đối với trình thông dịch web chạy chương trình cho đến khi hoàn thành và sau đó cho phép bạn xem đầu ra và bạn không có trình thông dịch được lưu trữ, hãy kiểm tra chương trình của bạn trên phiên bản nhỏ hơn của sự cố, sau đó điều chỉnh cẩn thận đến toàn bộ 2 128. )
Điểm của bạn là độ dài chương trình của bạn tính bằng byte, nhân với 0,8 nếu bạn nhận được tiền thưởng. Đó là mã golf, vì vậy điểm thấp nhất sẽ thắng.