Module: 보르


Problem

3 /10


유형 프린터

Problem

이동식 프린터로 N단어를 인쇄해야 합니다. 이동형 프린터 – 그들은 단어를 형성하기 위해 작은 금속 조각(각 조각에 하나의 문자가 포함됨)을 특정 순서로 배치해야 하는 오래된 프린터입니다. 그런 다음 그들은 모두 한 장의 종이에 눌러집니다. 이렇게 하면 한 단어가 인쇄됩니다. 프린터에서 다음을 수행할 수 있습니다.
  • 현재 프린터에 있는 단어 끝에 문자를 추가합니다.
  • 현재 프린터에 있는 단어에서 마지막 문자를 제거합니다. 이 작업은 단어에 적어도 하나의 문자가 포함된 경우에만 수행할 수 있습니다.
  • 현재 프린터에 있는 단어를 인쇄합니다.
처음에는 프린터에 빈 단어가 포함되어 있습니다. 프린터에서 인쇄가 끝나면 비어 있지 않은 단어를 남길 수 있습니다. 주어진 단어를 어떤 순서로든 입력할 수 있습니다.
 
세 가지 작업은 각각 한 단위의 시간이 걸립니다. 주어진 N개의 단어를 최소 시간 내에 인쇄하는 일련의 작업을 찾아야 합니다. 최소 시퀀스가 ​​여러 개 있는 경우 아무 것이나 인쇄합니다.
 
입력
프로그램은 다음 입력을 받아야 합니다.
 
첫 번째 줄에는 숫자 N(1<=N<=25000)이 있습니다.
다음 N줄에는 라틴 알파벳의 소문자로 구성된 단어. 각 단어의 길이는 20을 초과하지 않습니다. 모든 단어가 다릅니다.
 
출력
프로그램은 다음을 출력해야 합니다.
 
첫 번째 줄 M — 작업 수.
다음 M 행에서 하나의 — 작업 설명. 각 작업은 단일 문자로 설명됩니다.
문자 추가는 문자 ​​자체로 표시됩니다.
문자 삭제는 문자 "-"로 표시됩니다. (마이너스, ASCII 코드 45).
"현재 단어 인쇄" 작업 "P" 기호로 표시됩니다. (대문자 라틴 문자 P).
  <몸>
입력 출력
<사업부>3
인쇄
20
t
h
e
<사업부>- <사업부>- <사업부>-
e
m
<사업부>- <사업부>- <사업부>-
r
i
t