만드는 중입니다

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

챔퍼노운 부분수열

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

요약
숫자 문자열이 1부터 k까지 정수를 이어 붙인 문자열의 부분 수열이 되는 가장 작은 k를 구합니다.
난이도

어려움10점 중 8점

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

문제

kk번째 Champernowne 단어는 양의 정수 1부터 kk까지를 차례로 이어 붙여 쓴 문자열이다. 예를 들어 1010번째 Champernowne 단어는 1234567891012345678910이다.

어떤 유한한 숫자 문자열이든, 그 문자열이 어떤 kk번째 Champernowne 단어의 부분수열로 나타나는 정수 kk가 존재한다.

문자열 ss가 문자열 tt의 부분수열이라는 것은, tt에서 문자 몇 개(0개도 가능)를 지워 ss를 만들 수 있다는 뜻이다.

주어진 숫자 문자열이 kk번째 Champernowne 단어의 부분수열이 되는 가장 작은 정수 kk를 구하라.

입력

첫 줄에 문자열의 길이를 나타내는 정수 nn (1≤n≤105)(1 \leq n \leq 10^5)이 주어진다. 둘째 줄에는 길이가 nn인 숫자 문자열이 주어진다.

출력

주어진 문자열이 부분수열이 되는 가장 작은 정수 kk를 출력한다.

예제2

  1. 예제 1

    입력
    2
    90
    
    예상 출력
    10
    
  2. 예제 2

    입력
    2
    00
    
    예상 출력
    20