수 만들기

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

요약
양의 정수 A를 B로 바꾸는 최소 비용을 구한다. 각 자리 숫자를 다른 숫자로 바꾸는 연산(비용은 숫자 차, 최고 자리는 0이 될 수 없음)과 y > -A인 정수를 더하는 연산(비용 |y|)을 원하는 순서로 쓸 수 있다.
난이도

어려움10점 중 8점

유형
동적 계획법, 수학, 그리디
정답자
아직 제출이 없습니다

문제

두 양의 정수 A,BA,B가 주어집니다.

AA에 다음의 두가지 연산을 순서와 횟수에 상관 없이 원하는 만큼 반복할 수 있습니다.

  1. AA의 1010진법 표현을 d_k−1⋯d_0d\_{k-1} \cdots d\_0라고 합시다. 즉, A=∑_i=0k−1d_i⋅10iA = \sum\limits\_{i = 0}^{k-1} d\_i \cdot 10^i, d_id\_i는 0≤d_i≤90 \le d\_i \le 9를 만족하는 정수이며, d_k−1≠0d\_{k-1} \ne 0 입니다. 임의의 정수 i(0≤i<k)i (0 \le i < k)와 x(0≤x≤9)x (0 \le x \le 9)를 골라, d_id\_i를 xx로 교체합니다. 단, i=k−1i = k-1이라면 0<x≤90< x \le 9을 만족해야 합니다. 해당 연산의 비용은 ∣x−d_i∣|x-d\_i|입니다.
  2. y>−Ay>-A인 임의의 정수 yy를 골라, AA에 더합니다. 해당 연산의 비용은 ∣y∣|y|입니다.

예를 들어, 수 20242024에 i=1,x=7i=1, x=7를 골라 11번 연산을 수행하면 20742074가 되며, 해당 연산의 비용은 ∣7−2∣=5|7-2| = 5입니다.

그러나 i=3,x=0i=3, x=0를 골라 00240024를 만들거나, i=4,x=1i=4, x=1를 골라 1202412024를 만드는 것은 조건을 만족하지 않으므로 불가능합니다.

또한, 수 926926에 y=−926y=-926를 골라 22번 연산을 수행하여 00으로 만드는 것 역시 조건을 만족하지 않으므로 불가능합니다.

AA를 BB로 만드는 데 드는 비용의 합의 최솟값은 얼마일까요?

입력

첫 번째 줄에 두 양의 정수 A,B(1≤A,B<5,000,000)A, B (1 \leq A, B < 5\\,000\\,000)가 공백으로 구분되어 주어집니다.

출력

AA를 BB로 만드는 데 드는 비용의 합의 최솟값을 출력해주세요.

예제2

  1. 예제 1

    입력
    1273 29856
    
    예상 출력
    33
    
  2. 예제 2

    입력
    2024926 2024926
    
    예상 출력
    0