만드는 중입니다

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

편집 거리

시간 제한1초메모리 제한512 MB

요약
주어진 이진 문자열 S에 대해 길이가 같은 이진 문자열 T를 찾습니다. T와 S의 편집 거리가 S 길이의 절반보다 커야 합니다.
난이도

보통10점 중 5점

유형
문자열, 그리디
정답자
아직 제출이 없습니다

문제

이진 문자열은 0과 1로 이루어진 공백이 아닌 수열이다. 예를 들어 010110010110, 11, 1110111101 등이 있다. 두 이진 문자열 SS와 TT의 편집 거리 edit(S,T)\text{edit}(S, T)는 SS를 TT로 바꾸는 데 필요한 최소 한 글자 편집(삽입, 삭제, 치환) 횟수이다. 예를 들어 00110011과 11001100의 편집 거리는 44이다. 즉 0011→011→11→110→11000011 \to 011 \to 11 \to 110 \to 1100 순서로 바꿀 수 있다. 11001011100101과 11101001110100의 편집 거리는 22이다. 즉 1100101→1110101→11101001100101 \to 1110101 \to 1110100 순서로 바꿀 수 있다.

아유에게 이진 문자열 SS가 있다. 그녀는 SS와 길이가 같으면서 SS와의 편집 거리가 최대가 되는 이진 문자열을 찾고 싶어 한다. 형식적으로 말하면, ∣S∣=∣Tmax⁡∣|S| = |T_{\max}|이고, ∣S∣=∣T′∣|S| = |T'|를 만족하는 모든 이진 문자열 T′T'에 대해 edit(S,Tmax⁡)≥edit(S,T′)\text{edit}(S, T_{\max}) \ge \text{edit}(S, T')가 성립하는 이진 문자열 Tmax⁡T_{\max}를 찾는 것이다.

그녀는 당신의 도움이 필요하다. 다만 과제를 쉽게 만들어 주고 싶어 하니, SS와 길이가 같은 이진 문자열 TT 중 SS와의 편집 거리가 SS 길이의 절반보다 큰 것이면 아무거나 출력해도 된다. 형식적으로는 ∣S∣=∣T∣|S| = |T|이고 edit(S,T)>∣S∣/2\text{edit}(S, T) > |S|/2인 이진 문자열 TT를 출력해야 한다.

물론 Tmax⁡T_{\max}를 출력해도 된다. 어떤 이진 문자열 SS에 대해서도 edit(S,Tmax⁡)>∣S∣/2\text{edit}(S, T_{\max}) > |S|/2임이 증명되어 있기 때문이다. 이는 모든 SS에 대해 해가 존재함을 보여 준다. 유효한 해가 여러 개라면 그중 아무거나 출력하면 된다.

입력

입력은 이진 문자열 SS(1≤∣S∣≤20001 \le |S| \le 2000)이다.

출력

한 줄에 SS와 길이가 같은 이진 문자열 TT를 출력한다. TT는 edit(S,T)>∣S∣/2\text{edit}(S, T) > |S|/2를 만족해야 한다.

예제2

  1. 예제 1

    입력
    0011
    
    예상 출력
    1100
    
  2. 예제 2

    입력
    1100101
    
    예상 출력
    0011010