아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

전화번호

시간 제한2초메모리 제한512 MB

요약
국가 코드와 사업자 코드 목록이 주어질 때, 11자리 전화번호를 국가 코드, 사업자 코드, 가입자 번호로 나눠 정해진 형식으로 출력하고 불가능하면 Incorrect를 출력한다.
난이도

보통10점 중 5점

유형
문자열, 구현, 완전 탐색, 해시맵
정답자
아직 제출이 없습니다

문제

휴대전화 소프트웨어에서 빠질 수 없는 부분이 바로 전화번호부다. 초기 휴대전화에서는 가입자의 이름과 전화번호만 저장할 수 있었다. 더 현대적인 모델에서는 전자 우편 주소, 사진, 소셜 네트워크 페이지 링크, 생년월일 등 여러 가지 유용한 정보도 저장할 수 있다. 하지만 전화번호만 다루는 가장 단순한 버전의 프로그램을 구현할 때에도 개발자들은 몇 가지 어려움에 부딪히곤 한다.

모든 전화번호는 11자리 숫자로 이루어지며, 각각 앞에 0이 없는 수인 세 부분으로 나뉜다고 하자. 첫 번째 부분은 한 자리, 두 자리 또는 세 자리 숫자로 이루어지며 이 전화번호가 등록된 국가의 국가 코드다. 두 번째 부분은 세 자리, 네 자리 또는 다섯 자리 숫자로 이루어질 수 있으며, 번호가 등록된 지역의 지역 코드이거나 이 번호를 소유한 이동통신 사업자의 사업자 코드일 수 있다. 세 번째 부분은 번호의 나머지 모든 숫자로 이루어지며 특정 가입자의 번호다.

휴대전화 화면에 전화번호를 표시할 때에는 번호를 더 쉽게 읽고 기억할 수 있도록 각 부분을 여러 기호로 구분하는 것이 일반적이다. 국가 코드 앞에는 보통 <<+>> 기호를 붙이고, 지역 코드나 사업자 코드는 괄호로 묶으며, 가입자 번호는 <<->> 기호로 여러 부분으로 나눈다. 이때 몇 부분으로 나뉘는지는 가입자 번호의 자릿수에 따라 결정된다.

  • 가입자 번호가 세 자리면, 세 자리로 이루어진 한 부분이다.
  • 가입자 번호가 네 자리면, 각각 두 자리인 두 부분으로 나뉜다.
  • 가입자 번호가 다섯 자리면, 첫 부분이 세 자리이고 두 번째 부분이 두 자리인 두 부분으로 나뉜다.
  • 가입자 번호가 여섯 자리면, 각각 두 자리인 세 부분으로 나뉜다.
  • 가입자 번호가 일곱 자리면, 첫 부분이 세 자리이고 나머지 부분이 모두 두 자리인 세 부분으로 나뉜다.

당연히도 휴대전화의 전화번호부에 새 번호를 입력하는 사람은 이런 규칙을 생각하지 않고 11자리 숫자열로 입력할 뿐이다. 그러나 번호를 화면에 표시하기 전에 휴대전화 소프트웨어는 이 번호의 어느 부분이 국가 코드이고, 어느 부분이 지역 코드나 사업자 코드이며, 어느 부분이 가입자 번호인지 알아내어 위에 설명한 규칙대로 번호를 형식화해야 한다. 이 문제를 풀 수 있도록, 휴대전화의 메모리에는 현재 존재하는 국가 코드와 그 국가에 존재하는 사업자 코드나 지역 코드에 대한 정보가 저장된다. 이 정보를 이용하여 휴대전화의 전화번호부에 저장된 번호를 올바르게 형식화하는 프로그램을 작성하라.

입력

첫 번째 줄에는 휴대전화의 메모리에 전화번호 코드 정보가 저장된 국가의 수 nn (1≤n≤1001 \le n \le 100)이 주어진다. 이어서 줄바꿈으로 구분된 nn개의 국가 설명이 주어진다.

각 국가 설명의 첫 번째 줄에는 이 국가의 전화번호 코드 cc와 이 국가에 존재하는 사업자 또는 지역의 수 kk (1≤c≤9991 \le c \le 999, 1≤k≤1001 \le k \le 100)가 주어진다. 이 국가 설명의 다음 kk개 줄에는 이 국가에 등록된 사업자 또는 지역 코드가 주어지며, 각 코드는 100 이상 99999 이하다.

입력 파일의 다음 줄에는 형식화해야 할 전화번호의 수 mm (1≤m≤10 0001 \le m \le 10{\,}000)이 주어진다. 다음 mm개 줄에는 전화번호 자체가 주어지며, 각 번호는 정확히 11자리 숫자로 이루어진 문자열이다.

주어지는 모든 번호는 국가 코드, 사업자 또는 지역 코드, 가입자 번호로 두 가지 이상의 방식으로 나눌 수 없다고 보장된다.

출력

입력 파일에 주어진 번호를 문제에 설명된 규칙대로 형식화하여 출력하라. 각 번호는 한 줄에 하나씩 출력한다. 번호는 입력 파일에 나열된 순서대로 출력해야 한다.

국가 코드, 사업자 또는 지역 코드, 가입자 번호로 올바르게 나눌 수 없는 번호 대신에는 <<Incorrect>>라는 단어를 출력한다.

예제1

  1. 예제 1

    입력
    2
    7 3
    981
    3517
    812
    351 3
    34712
    1234
    963
    8
    79818266456
    35196328463
    78122472557
    01234567890
    73517960326
    35134712239
    35112342013
    78120203040
    
    예상 출력
    +7(981)826-64-56
    +351(963)284-63
    +7(812)247-25-57
    Incorrect
    +7(3517)96-03-26
    +351(34712)239
    +351(1234)20-13
    Incorrect