신나는 스타트업
면접 대비시간 제한3초메모리 제한512 MB
길이 t인 문자열을 b개의 조각으로 나눠 각 조각에 "_a/b" 표시를 붙일 때, 모든 메시지 길이가 n 이하가 되는 최소 b를 구한다.
문제
앨리스가 만든 메신저에서 메시지 하나는 최대 글자까지 보낼 수 있다.
첫 사용자인 캐시는 길이가 인 문자열 하나를 보내려고 한다. 가 보다 크므로 한 번에 보낼 수 없다. 그래서 문자열을 순서대로 조각으로 나눈 다음 번째 조각을 번째 메시지로 보낸다. 조각은 비어 있어도 된다.
메시지를 순서대로 읽을 수 있도록, 캐시는 조각 뒤에 _a/b 형태의 표시를 그대로 붙인다. 여기서 는 그 메시지의 번호이고 는 전체 메시지 개수이며, 두 수 모두 앞자리 0 없이 십진법으로 적는다. 이 표시도 글자 제한에 포함된다. 즉 번째 메시지의 길이는 (조각의 길이) (의 자릿수) (의 자릿수)이고, 이 값이 을 넘으면 안 된다. 조각이 빈 메시지까지 포함해 개를 모두 보낸다.
예를 들어 이고 보낼 문자열이 29글자인 floccinaucinihilipilification이라면 메시지가 최소 20개 필요하다. fl_1/20, oc_2/20, ci_3/20, ..., i_10/20, ..., n_20/20처럼 앞의 아홉 개는 두 글자씩, 뒤의 열한 개는 한 글자씩 담으면 된다.
과 가 주어질 때 필요한 메시지 개수의 최솟값을 구하라.
입력
첫째 줄에 정수 과 가 공백으로 구분되어 주어진다. (, )
은 메시지 하나의 최대 길이, 는 캐시가 보내려는 문자열의 길이다.
출력
캐시가 보내야 하는 메시지 개수의 최솟값을 출력한다. 메시지를 몇 개로 나누어도 문자열을 보낼 수 없으면 -1을 출력한다.