만드는 중입니다

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

신나는 스타트업

면접 대비

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

요약
길이 t인 문자열을 b개의 조각으로 나눠 각 조각에 "_a/b" 표시를 붙일 때, 모든 메시지 길이가 n 이하가 되는 최소 b를 구한다.
난이도

보통10점 중 5점

유형
이분 탐색, 수학, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

앨리스가 만든 메신저에서 메시지 하나는 최대 nn글자까지 보낼 수 있다.

첫 사용자인 캐시는 길이가 tt인 문자열 하나를 보내려고 한다. tt가 nn보다 크므로 한 번에 보낼 수 없다. 그래서 문자열을 순서대로 bb조각으로 나눈 다음 aa번째 조각을 aa번째 메시지로 보낸다. 조각은 비어 있어도 된다.

메시지를 순서대로 읽을 수 있도록, 캐시는 조각 뒤에 _a/b 형태의 표시를 그대로 붙인다. 여기서 aa는 그 메시지의 번호이고 bb는 전체 메시지 개수이며, 두 수 모두 앞자리 0 없이 십진법으로 적는다. 이 표시도 nn글자 제한에 포함된다. 즉 aa번째 메시지의 길이는 (조각의 길이) + 2 ++\ 2\ + (aa의 자릿수) ++ (bb의 자릿수)이고, 이 값이 nn을 넘으면 안 된다. 조각이 빈 메시지까지 포함해 bb개를 모두 보낸다.

예를 들어 n=7n = 7이고 보낼 문자열이 29글자인 floccinaucinihilipilification이라면 메시지가 최소 20개 필요하다. fl_1/20, oc_2/20, ci_3/20, ..., i_10/20, ..., n_20/20처럼 앞의 아홉 개는 두 글자씩, 뒤의 열한 개는 한 글자씩 담으면 된다.

nn과 tt가 주어질 때 필요한 메시지 개수의 최솟값을 구하라.

입력

첫째 줄에 정수 nn과 tt가 공백으로 구분되어 주어진다. (5≤n≤1005 \le n \le 100, n<t≤106n < t \le 10^6)

nn은 메시지 하나의 최대 길이, tt는 캐시가 보내려는 문자열의 길이다.

출력

캐시가 보내야 하는 메시지 개수의 최솟값을 출력한다. 메시지를 몇 개로 나누어도 문자열을 보낼 수 없으면 -1을 출력한다.

예제5

  1. 예제 1

    입력
    7 26
    
    예상 출력
    9
    
  2. 예제 2

    입력
    7 29
    
    예상 출력
    20
    
  3. 예제 3

    입력
    5 1000000
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    12 5000
    
    예상 출력
    1947
    
  5. 예제 5

    입력
    12 5001
    
    예상 출력
    1947