https://coderun.yandex.ru/problem/phone-formatting/description Средняя

Условие

Есть база данных телефонных номеров. Необходимо для каждого номера определить страну, оператора, а также привести номер в определённый формат.

Существует список шаблонов, которым может удовлетворять номер. Он имеет вид: NUMBER - COUNTRY OPERATOR

• NUMBER — шаблон номера, формат ниже;

• COUNTRY — названия страны, последовательности символов латинского алфавита;

• OPERATOR — названия оператора, последовательности символов латинского алфавита и цифр.

Номер в шаблоне задаётся в следующем виде: +COUNTRY_CODE (OPERATOR_CODE) PERSONAL_NUMBER

• COUNTRY_CODE — код страны, от одной до трёх цифр, первая цифра не может быть нулём;

• OPERATOR_CODE — код оператора, от двух до четырёх цифр;

• PERSONAL_NUMBER — шаблон номера абонента внутри оператора, строка длиной от пяти до девяти символов. Символом может быть цифра от 0 до 9 или символ X. Символ X означает, что на данной позиции может быть любая цифра от 0 до 9. Справа от символа X не может стоять цифра.

Гарантируется, что каждой паре COUNTRY_CODE OPERATOR_CODE соответствует ровно одна пара COUNTRY OPERATOR.

Все номера телефонов в текущей базе данных содержатся в полном формате (все цифры присутствуют), но, в отличие от формата выше:

• могут отсутствовать знак + и скобки;

• могут отсутствовать или быть в любом месте номера пробелы и знак-разделитель дефис;

• не содержат больше никакой информации (имени абонента, оператора и т.п.).

Гарантируется, что для каждого номера существует ровно один шаблон, которому он удовлетворяет, и все шаблоны не пересекаются.

Примеры

Ввод: 4 28-49-5-123-45-67 87544456789 +28 (495) 123 45 56 875-(29)-123456 3 +875 (29) 1XXXXX - Atlantis MythCell +875 (44) 4XXXXX - Atlantis MobTelecom +28 (495) XXXXXXX - ElDorado GoldLine Вывод:

+28 (495) 1234567 - ElDorado GoldLine +875 (44) 456789 - Atlantis MobTelecom +28 (495) 1234556 - ElDorado GoldLine +875 (29) 123456 - Atlantis MythCell