B. IPv6-г сэргээх

хугацааны хязгаарлалт 2 секунд

санах ойн хязгаарлалт 256 мегабайт

оролт стандарт оролт

гаралт стандарт гаралт

IPv6 хаяг 128 битийн урттай тоо байдаг. Эвтэйхэн байх үүднээс энэ тоо нь 16-н тооллын системд бичигдсэн 16 битийн блокууд хэлбэрээр бичигддэг ба блок бүр нь 16-н тооллын системийн дөрвөн цифр агуулсан байх ба нийтдээ зайгаар тусгаарлагдсан 8 блок байна. IPv6 хаягийн зөв бичиглэлийн жишээ: "$0124:5678:90ab:cdef:0124:5678:90ab:cdef$". Бид IPv6 хаягийн ийм хэлбэртэй бичиглэлийг бүрэн гэж нэрлэнэ.

Үүнээс гадна IPv6 хаягийн бүрэн бичиглэлд богино бичиглэлтэй формат байна. IPv6 хаягийн бичиглэлийг блок бүрийн эхэнд байгаа тэгүүдийг устгах замаар богиносгож болно. Гэсэн ч богино форматад байгаа блок бүрт ядаж нэг цифр байна. Жишээлбэл тэгүүдийг дараах байдлаар устгаж болно: "$a56f:00d3:0000:0124:0001:f19a:1000:0000$" -> "$a56f:d3:0:0124:01:f19a:1000:00$". Энэ IPv6 хаягийн тэгүүдийг богиносгох өөр аргууд ч мөн бий.

Зарим IPv6 хаягууд тэгүүдийн урт цуваа агуулж болно. 16 битийн үргэлжилсэн тэг блокуудын дарааллыг "$::$" гэж богиносгож болно. Дараалал нь 0-тэй тэнцүү 16 битийн нэг эсвэл хэд хэдэн үргэлжилсэн блокуудаас тогтож болно.

Та тэг блокуудыг богиносгож буй жишээнүүдийг дараахаас харж болно:

  • "$a56f:00d3:0000:0124:0001:0000:0000:0000$"  ->  "$a56f:00d3:0000:0124:0001::$";
  • "$a56f:0000:0000:0124:0001:0000:1234:0ff0$"  ->  "$a56f::0124:0001:0000:1234:0ff0$";
  • "$a56f:0000:0000:0000:0001:0000:1234:0ff0$"  ->  "$a56f:0000::0000:0001:0000:1234:0ff0$";
  • "$a56f:00d3:0000:0124:0001:0000:0000:0000$"  ->  "$a56f:00d3:0000:0124:0001::0000$";
  • "$0000:0000:0000:0000:0000:0000:0000:0000$"  ->  "$::$".

Хаяг дахь тэг блокуудыг нэгээс олон удаа богиносгож болохгүй. Энэ нь богино бичиглэл "$::$" тэмдэгтүүдийг нэгээс олон удаа агуулж болохгүй гэсэн үг. Учир нь заримдаа "$::$" тэмдэгтүүдээр дүрслэгдсэн тэг блокуудын тоог тодорхойлох боломжгүй болдог.

Эхлэлийн тэгүүд болон тэг блокуудыг богиносгосны дараах IPv6 хаягийн бичлэгийн форматыг богино гэж нэрлэнэ.

Танд IPv6 хаягуудын хэд хэдэн богино бичиглэл байна. Тэдгээрийн бүрэн бичиглэлийг сэргээнэ үү.

Оролт

Эхний мөрөнд бүхэл тоо $n$ байх ба сэргээх бичлэгүүдийн тоо байна ($1 ≤ n ≤ 100$).

Дараагийн $n$ мөр бүрт богино IPv6 хаягийг илэрхийлэх тэмдэгт мөр байна. Тэмдэгт мөр бүр зөвхөн "$0123456789abcdef:$" тэмдэгт мөрийн тэмдэгтүүдээс л тогтоно.

Богино хаяг бүр бүрэн IPv6 хаягнаас дээр тодорхойлсон замаар гаргаж авсан хаягууд болно.

Гаралт

Оролтонд өгөгдсөн богино IPv6 хаяг бүрийн хувьд түүний бүрэн бичиглэлийг нэг мөрөнд хэвлэ. Бүрэн бичиглэлүүдийг богино бичиглэлүүдийн оролтонд өгсөн дарааллаар хэвлэ.

Орчуулсан: Г.Мэндбаяр

Жишээ тэстүүд

Оролт
6
a56f:d3:0:0124:01:f19a:1000:00
a56f:00d3:0000:0124:0001::
a56f::0124:0001:0000:1234:0ff0
a56f:0000::0000:0001:0000:1234:0ff0
::
0ea::4d:f4:6:0
Гаралт
a56f:00d3:0000:0124:0001:f19a:1000:0000
a56f:00d3:0000:0124:0001:0000:0000:0000
a56f:0000:0000:0124:0001:0000:1234:0ff0
a56f:0000:0000:0000:0001:0000:1234:0ff0
0000:0000:0000:0000:0000:0000:0000:0000
00ea:0000:0000:0000:004d:00f4:0006:0000
Сэтгэгдлүүдийг ачааллаж байна...