1402: 숫자 세기 게임

메모리:128 MB 시간:1.000 S 표준 입력 및 출력
문제유형 채점방법:일반 만든사람:
제출:1 통과:1

문제설명

다음 두 가지 연산이 가능한 숫자 세기 게임을 생각해보자.

(연산 1) 숫자를 뒤집는다
(연산 2) 숫자에 1을 더한다

예를 들어 94라는 숫자가 주어졌다고 가정하자.
이 숫자에 (연산 1)을 적용할 경우 49가 될 것이고, (연산 2)를 적용한다면 95가 될 것이다.

단, (연산 1)을 적용하였을 때 leading zero가 발생한다면, 이를 모두 제거하여야 한다.
가령 2300에 (연산 1)을 적용하면, 0032가 아닌 32이다.
(즉, 어떤 숫자를 두 번 뒤집게 되면 자기 자신이 나오지 않을 수도 있다)

당신은 0부터 숫자를 세어, 최대 K번의 연산을 통해 숫자 N을 만들어야한다.

입력조건


하나의 테스트케이스는 5개의 작은 테스트케이스로 구성되어있다.
하나의 작은 테스트케이스는, 숫자 N과 K가 공백을 구분으로 하여 입력된다.
작은 테스트케이스는 개행 문자를 구분으로 하여 입력된다.

N,K <= 100,000,000,000,000 (10^14) 이다.
단, 테스트 케이스의 최소 50%는 N,K <= 1,000,000 (10^6) 이다.

출력조건

최대 K번의 연산을 통해 숫자 N을 만들 수 있다면, N을 만드는 최소 연산의 횟수를,
그렇지 않다면 -1을 각 줄에 걸쳐서 출력한다.

부분 점수는 인정되지 않으며, 작은 테스트케이스 5개를 모두 맞춰야 하나의 테스트케이스에 대한 점수를 얻는다.
또한 작은 테스트케이스들의 정답이 모두 -1인 테스트케이스는 존재하지 않음을 명심하라.

입력예시 복사

3 3
9 5
40 100
500 132
9999 400

출력예시 복사

3
-1
23
-1
336

힌트