260. Телефонные номера

Не решаласьСредняя

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

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

  • NUMBER — шаблон номера, формат ниже;
  • COUNTRY — названия страны, последовательности символов латинского алфавита;
  • OPERATOR — названия оператора, последовательности символов латинского алфавита и цифр.

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

  • COUNTRY_CODE — код страны, от одной до трёх цифр, первая цифра не может быть нулём;
  • OPERATOR_CODE — код оператора, от двух до четырёх цифр;
  • PERSONAL_NUMBER — шаблон номера абонента внутри оператора, строка длиной от пяти до девяти символов. Символом может быть цифра от 00 до 99 или символ XX. Символ XX означает, что на данной позиции может быть любая цифра от 00 до 99. Справа от символа XX не может стоять цифра.

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

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

  • могут отсутствовать знак + и скобки;
  • могут отсутствовать или быть в любом месте номера пробелы и знак-разделитель дефис;
  • не содержат больше никакой информации (имени абонента, оператора и т.п.).

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

Формат ввода

Первая строка содержит число NN (1N10001 \le N \le 1000) — количество номеров в базе данных.

Далее следует NN строк — номера телефонов по одному номеру в строке. Длина строки не превосходит 100100 символов.

Следующая строка содержит число MM (1M10001 \leq M \leq 1000) — количество шаблонов.

Далее MM строк — шаблоны в формате, описанном выше. Длина шаблона не превосходит 100100 символов.

Формат вывода

Выведите NN строк, в каждой номер в новом формате в том порядке, в котором они указаны во входе.

Примечание

Некоторые страны могут иметь одинаковый COUNTRY_CODE.

Ограничения

Ограничение времени

3 с

Ограничение памяти

256 МБ

Пример 1

Ввод
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

Пример 2

Ввод
2
12345678
123456789
2
+1 (234) XXXXX - USA SomeCell
+1 (23) XXXXX - Canada AnotherCell
Вывод
+1 (23) 45678 - Canada AnotherCell
+1 (234) 56789 - USA SomeCell

Теги

Нужно войти, чтобы отправить решение.Войти