만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

백업 시스템

면접 대비

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

요약
소문자 문자열을 입력받아 이미 나온 문자가 다시 나오면 마지막 등장 위치 뒤의 내용을 백업으로 출력하고, 마지막에 남은 현재 문자열을 출력합니다.
난이도

보통10점 중 4점

유형
시뮬레이션, 스택, 문자열
정답자
아직 제출이 없습니다

문제

천재적인 영국 과학자들이 또다시 새로운 발명품으로 세상을 놀라게 했다. 이번에는 백업 시스템의 혁신적인 버전을 선보였다. 그러나 그들의 다른 발명품과 마찬가지로 큰 단점이 하나 있다. 지금은 소문자 라틴 알파벳으로 이루어진 문자열에만 적용할 수 있다는 것이다. 하지만 이런 문제로 발목이 잡혔던 사람이 언제 있었던가?

여러분은 이 시스템을 구현해야 한다. 원리는 단순하다. 문자열의 문자가 한 번에 하나씩 입력으로 들어온다. 시스템은 현재 버전의 문자열에 이미 있는 문자를 만나면, 그 문자의 마지막 출현 위치를 찾아 그 뒤에 현재 버전에 적혀 있던 내용을 모두 지운다. 지우기 전에 지워진 부분은 백업된다. 그다음 들어온 문자를 현재 버전 끝에 덧붙인다. 마지막 출현 위치가 들어온 문자의 바로 앞이라면, 아무것도 지우지 않으며 백업도 하지 않는다.

발명자들은 백업된 모든 문자열과 현재 버전에 남은 문자열이 있으면 원래 입력 문자열을 복원할 수 있다고 주장한다. 복원 방법을 보일 필요는 없다. 대신 입력 문자열에 대해, 지워져서 백업된 내용을 일어난 순서대로 모두 출력하고, 마지막으로 현재 버전에 남은 문자열을 출력하라.

입력

입력 파일에는 시스템에 주어지는 소문자 라틴 알파벳으로 이루어진 문자열이 한 줄 들어 있다. 문자열의 길이는 200000200000을 넘지 않는다.

출력

백업이 일어날 때마다 백업된 내용을 새 줄에 출력한다. 문자열이 끝나면 현재 버전을 출력한다.

예제1

  1. 예제 1

    입력
    abcabcdbcd
    
    예상 출력
    bc
    cd
    aabbcd