N 이하의 식
시간 제한2초메모리 제한512 MB
숫자와 '+'로 이루어진 문자열 S에서 문자를 최소한으로 바꿔, 값이 N 이하인 올바른 수식을 만드는 문제입니다. 만들 수 없으면 -1을 출력합니다.
문제
정수 과 +와 숫자로 이루어진 문자열 가 주어진다. 의 일부 문자를 바꿔서 계산 결과가 이하인 올바른 식으로 만들어야 한다. 문자 하나를 다른 문자로 바꾸는 작업을 여러 번 할 수 있으며, 바꾼 뒤의 문자열도 +와 숫자로만 이루어져야 한다. 앞자리 0과 단항 양수는 허용되지 않는다.
예를 들어 0123+456은 앞자리에 0이 있으므로 잘못되었다. +1+2와 2++3은 단항 식을 포함하므로 잘못되었다. 반면 12345, 0+1+2, 1234+0+0은 모두 올바른 식이다.
계산 결과가 이하인 올바른 식을 만들 때 바꿔야 하는 문자의 최소 개수를 구하라. 그런 식을 만들 방법이 없으면 을 출력한다.
입력
첫 줄에 정수 ()이 주어진다. 둘째 줄에 +와 숫자로 이루어진 문자열 가 주어진다. 의 길이는 1 이상 1,000 이하이다. 가 처음부터 올바른 식이라는 보장은 없다.
출력
바꾼 문자의 최소 개수를 출력한다. 이하인 올바른 식을 만들 수 없으면 을 출력한다.
힌트
첫 번째 예에서는 처음 두 문자를 바꿔 1+23 같은 식을 만들 수 있다. 두 번째 예에서는 모든 문자를 바꿔 0+10 또는 10+0을 만들어야 한다. 세 번째 예에서는 이하인 올바른 식을 만들 수 없다.