두두 영어

영어 문장에 일곱 단계 변환(소문자화, of-단어 치환, 모음 삭제, 구두점 제거, 줄바꿈 병합, 공백 정리, 20자 기준 줄바꿈)을 순서대로 적용해 두두식 영어로 번역한다.

쉬움3문자열구현시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

두두, 2015: "your uf of library have bugs"

두두는 영어가 매우 비효율적인 언어라는 결론을 내리고 자신만의 방언 dudu of english를 만들었다. 영어 문장을 dudu of english로 옮기는 번역기를 작성한다.

규칙은 아래 순서대로 적용한다.

  1. 대문자는 모두 소문자로 바꾼다. dudu of english를 쓰는 사람은 겸허하다.
  2. 두두에게 전치사는 과대평가된 품사이고, 몇몇 단어는 사실상 같은 뜻이다. 이런 단어를 of-단어라고 부르며, 전부 of로 바꾼다. of-단어는 of, to, into, onto, above, below, from, by, is, at 열 개다.
  3. 두두는 모음이 가독성을 높이지 않는다고 본다. 단어에 모음이 KK개 있으면 앞쪽 모음 K/2\lfloor K/2 \rfloor개를 지운다. 모음은 a, e, i, o, u다.
  4. 문장 부호는 모두 지운다.
  5. 입력의 줄바꿈은 모두 지우고 공백으로 바꾼다.
  6. 연속한 공백은 공백 하나로 줄인다. 두두는 낭비하지 않는다.
  7. 두두는 짧은 줄만 읽고 싶어 하지만 단어를 자르는 것도 싫어한다. 출력할 때 어떤 단어 때문에 현재 줄의 길이가 20자를 넘으면 그 단어 뒤에서 줄을 바꾼다. 길이를 셀 때 공백은 세지 않는다.

단어는 공백과 줄바꿈으로 구분되는 문자 덩어리다. 알파벳 대소문자, 공백, 줄바꿈이 아닌 문자는 모두 문장 부호로 본다.

적용 순서가 결과를 바꾼다. of-단어 판정은 규칙 1을 적용한 직후의 단어로 하므로, 문장 부호가 붙은 to,는 of-단어가 아니다. 규칙 2로 of가 된 단어에는 규칙 3이 이어서 적용되지만 모음이 하나뿐이라 of가 그대로 남는다.

문장 부호를 지운 뒤 남는 글자가 없는 단어는 출력하지 않는다. 줄 맨 앞에는 공백을 넣지 않는다.

입력

첫째 줄에 번역할 줄의 수 NN이 주어진다.

다음 NN개 줄에 번역할 텍스트가 주어진다. 각 줄은 출력 가능한 아스키 문자(코드 32 이상 126 이하)로만 이루어진다.

  • 1N501 \le N \le 50
  • 번역할 텍스트의 전체 길이는 5000자를 넘지 않는다.

출력

번역한 텍스트를 출력한다. 같은 줄에 놓인 단어는 공백 하나로 구분하고, 규칙 7에 따라 줄을 바꾼다.

출력할 단어가 하나도 없으면 아무것도 출력하지 않는다.

힌트

규칙 3의 예로, question.에는 모음이 u, e, i, o 네 개 있으므로 앞의 두 개를 지워 qstion.이 되고, 규칙 4에서 마침표까지 지워져 qstion이 된다.

규칙 7에서 줄 길이가 정확히 20자면 줄을 바꾸지 않는다. 20자를 넘긴 단어는 같은 줄에 남기고 그 뒤에서 줄을 바꾼다.