Cho n khối CIDR, hãy biểu diễn hợp (union) của chúng bằng số khối CIDR ít nhất.
Thuật toán: chuyển mỗi CIDR thành khoảng số nguyên [lo, hi]; sắp xếp, gộp các khoảng phủ nhau hoặc liền kề; với mỗi khoảng kết quả, sinh dãy CIDR tối thiểu (greedy: tại địa chỉ cur, chọn khối lớn nhất căn lề đúng (cur & -cur) mà không vượt quá phần còn lại).
In các CIDR theo thứ tự địa chỉ tăng dần. Tự xử lý bit, không dùng ipaddress.
192.168.0.0/24 và 192.168.1.0/24 kề nhau và căn lề → gộp thành 192.168.0.0/23.
Dòng đầu n. n dòng sau, mỗi dòng một khối CIDR ip/prefix.
1 ≤ n ≤ 1000. 0 ≤ prefix ≤ 32.
In các khối CIDR tối thiểu, mỗi khối một dòng, theo địa chỉ tăng dần.
Ví dụ:
Đầu vào:
2
192.168.0.0/24
192.168.1.0/24
Đầu ra:
192.168.0.0/23
Giải thích:
Đang tải editor...