시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
지미는 글에 쓰인 표현을 더 격식 있는 형태로 고치는 일을 맡고 있다. 이 작업에는 축약 표현을 풀어 쓰고, 일부 약어는 처음 등장할 때 원래 이름을 함께 적어 주는 일이 포함된다.
영어의 축약 표현은 더 긴 구나 문장에서 일부 소리나 글자를 줄이거나 합쳐 만든 단어 또는 구이다. 예를 들어 "don't"는 "do not"의 축약 표현이고, "o'clock"은 "of the clock"에서 온 표현이다.
약어는 이름을 이루는 단어들의 첫 글자나 여러 단어의 일부를 합쳐 만든 글자열 또는 단어이다. 예를 들어 "ACM"은 "Association for Computing Machinery"를 줄인 말이고, "radar"는 "radio detecting and ranging"에서 온 말이다.
축약 표현 목록과 약어 목록, 그리고 여러 개의 글이 주어진다. 각 글에서 모든 축약 표현을 풀어 쓰고, 각 글마다 약어의 첫 번째 등장만 확장하여 출력하라.
첫 줄에는 두 정수 C < 50, A < 50이 주어진다. C는 풀어 써야 할 축약 표현의 개수이고, A는 처리해야 할 약어의 개수이다.
다음 C개의 줄에는 축약 표현과 그 격식 있는 표현이 주어진다. 이어지는 A개의 줄에는 약어와 그 확장이 한 줄에 하나씩 주어진다. 축약 표현과 약어는 모두 다음 형식으로 주어진다.
"contraction or acronym" -> "expansion"축약 표현, 약어, 확장 표현에는 공백이 포함될 수 있으므로 양쪽 모두 큰따옴표로 둘러싸인다. 각 문자열의 길이는 80자를 넘지 않는다.
그 뒤에는 확장해야 할 글들이 이어진다. 각 글은 길이가 80자를 넘지 않는 여러 줄로 이루어지며, 어떤 축약 표현이나 약어도 두 줄에 걸쳐 나뉘지 않는다. 하나의 글은 문자 # 하나만 있는 줄로 끝난다.
필요한 확장을 제외하고 각 글을 입력과 같은 형태로 출력한다. 각 글을 끝내는 # 줄도 출력해야 한다.
모든 축약 표현은 전부 확장해야 한다. 축약 표현은 목록에 적힌 형태 그대로, 전체 대문자 형태, 또는 첫 글자만 대문자이고 나머지는 목록에 적힌 그대로인 형태로 나타날 수 있다. 확장 표현도 같은 대소문자 규칙을 따른다. 둘 이상의 규칙이 동시에 맞으면 목록에 적힌 형태, 전체 대문자, 첫 글자만 대문자 순서로 먼저 맞는 규칙을 사용한다.
약어는 이름을 이해하고 식별하는 데 도움이 되므로 각 글에서 첫 번째 등장만 바꾼다. 약어는 대소문자가 정확히 일치해야만 등장한 것으로 본다. 약어를 바꿀 때는 확장 표현을 출력한 뒤 공백 하나와 괄호 안의 원래 약어를 붙인다.
여러 축약 표현 또는 약어가 적용될 수 있다면 글에서 더 앞에서 시작하는 것을 사용한다. 같은 위치에서 여러 항목이 시작한다면 입력 목록에서 더 먼저 나온 항목을 사용한다.
"contraction or acronym" -> "expansion"