{"problem":{"name":"[语言月赛 202502] IPv6","description":{"content":"IP 地址是在网络中唯一标识一台网络设备的一串数字。IPv4 使用 $32$ 位二进制数作为 IP 地址，然而，随着网络设备数目的快速增加，IPv4 的总地址数已经耗尽。为了解决这个问题，计算机科学家引入了 IPv6。 IPv6 使用 $128$ 位二进制数作为 IP 地址。为了方便书写，常常将这 $128$ 位二进制数划分为 $8$ 组，每组对应 $16$ 位二进制，在书写时，每组写为 $4$","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":524288},"difficulty":{"LuoguStyle":"P2"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGB4148"},"statements":[{"statement_type":"Markdown","content":"IP 地址是在网络中唯一标识一台网络设备的一串数字。IPv4 使用 $32$ 位二进制数作为 IP 地址，然而，随着网络设备数目的快速增加，IPv4 的总地址数已经耗尽。为了解决这个问题，计算机科学家引入了 IPv6。\n\nIPv6 使用 $128$ 位二进制数作为 IP 地址。为了方便书写，常常将这 $128$ 位二进制数划分为 $8$ 组，每组对应 $16$ 位二进制，在书写时，每组写为 $4$ 位十六进制数。每两组间，使用 `:` 隔开。\n\n下图展示了一个 IPv6 地址的二进制表示形式与十六进制简写格式。\n\n![](https://cdn.luogu.com.cn/upload/image_hosting/1symr2e8.png)\n\n然而，十六进制的书写依然非常不方便，因此，IPv6 进一步引入了 IP 地址的简写规则：\n\n1. **前导零省略规则。** 在每一组中，前导零可以省略。例如 `FC00:0:130F:0:9C0:876A:130B:0` 与 `FC00:0000:130F:0000:09C0:876A:130B:0000` 表示的是同一个地址。\n2. **连续零替代规则。** 如果一组或连续多组全为零，可以用双冒号 `::` 代替，但整个 IPv6 地址中只能使用一次 `::`。例如，`2001:DB8:130F::9C0:876A:130B` 与 `2001:0DB8:130F:0000:0000:09C0:876A:130B` 表示的是同一个地址。**`::` 可以出现在 IPv6 地址串的两端。**\n\n现在，给出一个十六进制形式的 IPv6 地址。该地址**可能**应用了上述的简写规则，请输出该 IPv6 地址对应的二进制格式。\n\n## Input\n\n输入一行一个字符串，表示十六进制形式的 IPv6 地址。\n\n## Output\n\n输出一行 $128$ 个数字字符，表示对应的二进制 IPv6 地址。字符与字符之间**不要**用空格隔开。\n\n[samples]\n\n## Note\n\n- 对于 $40\\%$ 的测试数据，IPv6 地址没有应用简化规则；\n- 对于另外 $20\\%$ 的测试数据，IPv6 地址没有应用连续零替代规则；\n- 对于 $100\\%$ 的测试数据，输入的是一个合法的 IPv6 地址。","is_translate":false,"language":"English"}],"meta":{"iden":"LGB4148","tags":["2025","字符串（入门）","语言月赛"],"sample_group":[["1111:2222:3333:0000:0000:0000:7777:FFF\n","00010001000100010010001000100010001100110011001100000000000000000000000000000000000000000000000001110111011101110000111111111111"],["1111:2222:3333::7777:FFFF\n","00010001000100010010001000100010001100110011001100000000000000000000000000000000000000000000000001110111011101111111111111111111"]],"created_at":"2026-03-03 11:09:25"}}