아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

은행 카드

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

요약
숫자 X가 문자열로 주어질 때, X의 부분 수열로 만들 수 없는 가장 작은 양의 정수 N을 구한다.
난이도

보통10점 중 6점

유형
그리디, 문자열, 투 포인터, 수학
정답자
아직 제출이 없습니다

문제

은행 «키슬로보츠크»가 새로운 형태의 은행 카드로 전환한다. 이를 위해 고객 식별을 위한 특별한 자리가 있는 동일한 카드 원판을 만든다. 처음에 이 자리에는 코드 번호 XX가 기록된다. 은행에서는 특수 장치로 XX의 일부 숫자를 지울 수 있다. 남은 숫자를 연속해서 적은 것이 고객의 계좌 번호가 된다. 예를 들어 X=12013456789X = 12013456789일 때 계좌 번호 5, 12, 17, 12013456789는 얻을 수 있지만 22나 71은 얻을 수 없다.

은행의 계좌 번호 배정 방식은 아주 단순하다. 계좌에는 1, 2, … 순서대로 번호가 부여된다. 이런 방식에서는 언젠가 위 방법으로 XX의 숫자에서 얻을 수 없는 계좌 번호 NN이 처음으로 나타난다. 은행 경영진은 NN의 값을 알고 싶어 한다.

주어진 XX에 대해 NN을 구하는 프로그램을 작성하시오.

입력

입력 파일에는 앞에 0이 없는 자연수 XX가 주어진다. (1≤X<1010001 \le X < 10^{1000})

출력

출력 파일에는 앞에 0이 없는 구하는 값 NN을 출력한다.

예제2

  1. 예제 1

    입력
    239
    
    예상 출력
    1
    
  2. 예제 2

    입력
    12013456789
    
    예상 출력
    22