IPv6 (англ. Internet Protocol version 6) — новая версия протокола IP, призванная решить проблемы, с
которыми столкнулась предыдущая версия (IPv4) при её использовании в Интернете, за счёт
использования длины адреса 128 бит вместо 32.
Адреса IPv6 отображаются как восемь групп по четыре шестнадцатеричные
цифры, разделённые двоеточием. Пример адреса:
2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d
Если одна или более групп подряд равны 0000, то они
могут быть опущены и заменены на двойное двоеточие (::).
Например, 2001:0db8:0000:0000:0000:0000:ae21:ad12
может быть сокращён до 2001:db8::ae21:ad12, или
0000:0000:0000:0000:0000:0000:ae21:ad12 может быть сокращён
до ::ae21:ad12. Сокращению не могут быть подвергнуты 2 разделённые нулевые
группы из-за возникновения неоднозначности. Ведущие нули в числе могут быть
опущены.
Вам дан некоторый полный адрес. Ваша задача вывести
его кратчайшую форму. Если существует несколько решений, то выведите
лексикографически минимальный адрес. Сравнение адресов производится посимвольно
в соответствии с их кодами (стандартное сравнение строк).
Формат
входного файла
В первой строке входного файла содержится правильный
полный IPv6-адрес. Адрес содержит только цифры, маленькие
латинские символы от a до f и
знак «:»
Формат
выходного файла
Выведите в выходной файл сокращенный адрес.
Пример
Входные данные
|
Выходные данные
|
fe80:0000:0000:0000:0200:f8ff:fe21:67cf
|
fe80::200:f8ff:fe21:67cf
|
2001:0db8:0000:0000:0000:0000:ae21:ad12
|
2001:db8::ae21:ad12
|
0000:0000:1111:1111:1111:1111:0000:0000
|
0:0:1111:1111:1111:1111::
|