A=S

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

요약
최대 1000자리 숫자 A의 자릿수 사이에 더하기 기호를 넣어 합이 S가 되도록 하면서 더하기 개수를 최소로 만드는 문제입니다.
난이도

보통10점 중 7점

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

문제

수식 A=S가 주어진다. 왼쪽의 A는 오른쪽의 S와 값이 다를 수 있다.

A의 각 자리 사이에 필요하다면 + 기호를 삽입해서, 왼쪽 식의 합이 S가 되도록 만들어야 한다. 숫자의 순서는 바꿀 수 없고 모든 자리를 정확히 한 번 사용해야 한다. 삽입 뒤에 만들어지는 항은 앞에 0이 올 수 있으며, 정수 값으로 해석한다.

항상 조건을 만족하는 방법이 하나 이상 주어진다.

입력

첫째 줄에 등식 A=S가 주어진다. A와 S는 0으로 시작하지 않는 양의 정수이다. A의 길이는 최대 1,000자리이고, S는 5,000 이하이다.

출력

첫째 줄에 A에 + 기호를 삽입하여 등식이 성립하도록 만든 식을 출력한다.

가능한 식이 여러 개라면 + 기호의 개수가 가장 적은 식을 출력한다. 그중에서도 여러 가지가 가능하다면 아무 식이나 출력해도 된다.

예제3

  1. 예제 1

    입력
    143175=120
    
    예상 출력
    14+31+75=120
    
  2. 예제 2

    입력
    5025=30
    
    예상 출력
    5+025=30
    
  3. 예제 3

    입력
    999899=125
    
    예상 출력
    9+9+9+89+9=125