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

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

1의 변환

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

요약
1에서 시작해 마지막 자리만 바꾸는 연산으로 주어진 수를 만드는 최소 비용을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, BFS, 구현, 수학
정답자
아직 제출이 없습니다

문제

수의 왕국(Numeracija) 은 자기 나라 수들의 품질을 매우 자랑스러워하여, 주민이 어떤 수를 한 번 바꿀 때마다 세금을 걷는다. 그런데도 이 왕국의 주민들은 수를 변형하는 것을 무척 좋아한다.

하나조(Vienetukai) 라는 친구들 모임은 언제나 수 11 에서 시작해 수를 변형하기를 즐긴다. 이들은 넉넉하지 못하기 때문에, 가장 마지막(가장 낮은 자리) 숫자에만 작용하는 가장 저렴한 변형만 사용한다.

  • 수의 마지막 숫자에 11 을 더한다 — 금화 11 개;
  • 수의 마지막 숫자를 22 부터 99 까지의 정수 중 하나로 곱한다 — 금화 22 개.

변형은 언제나 마지막 한 자리 숫자에만 작용하며, 그 결과가 그 자리를 대신한다(곱셈 결과가 두 자리이면 수는 그만큼 길어진다). 예를 들어 77 의 마지막 숫자에 33 을 곱하면 77 은 2121 이 되고, 2525 의 마지막 숫자 55 에 33 을 곱하면 55 가 1515 로 바뀌어 215215 가 된다.

예를 들어 이 연산들을 사용하면 11 에서 다음과 같은 변형 순서로 21212121 을 얻을 수 있다.

  1. 11 에 77 을 곱해 77 을 얻는다.
  2. 77 에 33 을 곱해 2121 을 얻는다.
  3. 마지막 숫자에 11 을 더해 2222 를 얻는다.
  4. 마지막 숫자에 55 를 곱해 210210 을 얻는다.
  5. 마지막 숫자에 11 을 더해 211211 을 얻는다.
  6. 마지막 숫자에 33 을 곱해 213213 을 얻는다.
  7. 마지막 숫자에 77 을 곱해 21212121 을 얻는다.

이 변형의 비용은 금화 1212 개이며, 다음과 같이 도식으로 나타낼 수 있다.

1⟹21×77⟹27×321⟹11+122⟹22×5210⟹10+1211⟹21×3213⟹23×721211 \underset{1 \times 7}{\overset{2}{\Longrightarrow}} 7 \underset{7 \times 3}{\overset{2}{\Longrightarrow}} 21 \underset{1 +1}{\overset{1}{\Longrightarrow}} 22 \underset{2 \times 5}{\overset{2}{\Longrightarrow}} 210 \underset{0 + 1}{\overset{1}{\Longrightarrow}} 211 \underset{1 \times 3}{\overset{2}{\Longrightarrow}} 213 \underset{3 \times 7}{\overset{2}{\Longrightarrow}} 2121

21212121 은 더 저렴하게, 금화 99 개만으로도 얻을 수 있다.

1⟹21×55⟹25×525⟹25×3215⟹25×42120⟹10+121211 \underset{1 \times 5}{\overset{2}{\Longrightarrow}} 5 \underset{5 \times 5}{\overset{2}{\Longrightarrow}} 25 \underset{5 \times 3}{\overset{2}{\Longrightarrow}} 215 \underset{5 \times 4}{\overset{2}{\Longrightarrow}} 2120 \underset{0 +1 }{\overset{1}{\Longrightarrow}} 2121

하나조 가 돈을 아낄 수 있도록 도와주자. 주어진 수 AA 를 위 변형들만으로 11 에서 얻는 데 드는 최소 비용을 구하여라.

입력

첫째 줄에 자연수 AA 가 주어진다.

출력

하나조 가 11 에서 수 AA 를 얻기 위한 최소 비용을 정수 하나로 출력한다. 주어진 변형들로 AA 를 얻는 것이 불가능하면 −1-1 을 출력한다.

제한

  • 1≤A≤1091 \le A \le 10^9

예제3

  1. 예제 1

    입력
    1000
    
    예상 출력
    -1
    
  2. 예제 2

    입력
    2121
    
    예상 출력
    9
    
  3. 예제 3

    입력
    5555
    
    예상 출력
    10