암호화된 메시지
시간 제한1초메모리 제한1024 MB
문자열 t를 단어들로 나누되, 앞부분은 w1부터 wn까지, 뒷부분은 wn부터 w1까지 이어지도록 나눕니다. 단어 수가 최대가 되도록 단어들을 출력합니다.
문제
수사 중 베누아 블랑은 범행 현장에 누군가 남긴 의심스러운 쪽지를 발견했다. 쪽지의 텍스트 는 얼핏 보면 아무 의미가 없었지만, 오랜 분석 끝에 블랑은 이것이 의미가 있는 메시지이며 암호화되어 있다고 결론 내렸다.
쪽지에 쓰인 암호는 꽤 특이하다. 각 단어를 따로 암호화한 뒤 모든 단어를 이어 붙였기 때문에, 어디서부터 어디까지가 한 단어인지 알 수 없다. 그래서 탐정은 먼저 단어의 경계를 복원하고, 그다음에 단어를 해독하기로 했다.
쪽지의 텍스트는 다음과 같이 만들어졌다. 암호화된 단어의 집합 을 역순으로 한 번 더 나열한 뒤, 공백 없이 모두 적었다. 즉 이며, '+'는 연결을 뜻한다.
베누아 블랑이 원래의 암호화된 단어 집합을 복원하도록 도와라. 블랑은 메시지에 단어가 많이 들어 있다고 믿으므로, 조건을 만족하는 의 모든 분할 방법 가운데 단어 수가 최대인 것을 골라라.
입력
소문자 라틴 문자로 이루어진 문자열 가 한 줄로 주어진다. 이는 암호화된 텍스트이다 ().
출력
첫째 줄에 암호화된 텍스트에 가능한 단어의 최대 개수 을 출력하라. 이어서 개의 줄에 단어를 한 줄에 하나씩 출력하라.
최대 을 갖는 답이 여러 개라면 그중 아무것이나 출력해도 된다.
답이 존재함이 보장된다.