쿠의 용돈 인상 계획

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

요약
D자리 수와 K번의 연산이 주어지고, 매 연산마다 한 자릿수 y를 어떤 x(2 이상 9 이하)배로 바꿀 때 얻을 수 있는 최댓값을 구한다.
난이도

보통10점 중 7점

유형
그리디, 구현, 수학, 문자열 매칭
정답자
아직 제출이 없습니다

문제

쿠는 건국대학교의 마스코트답게 매년 총장에게 용돈을 NN원 받는다. 쿠는 언젠간 건국대학교를 인수하기 위해 용돈을 xx배 올려달라고 부탁했다 (2≤x≤9; x(2 \le x \le 9;\ x는 정수)).

총장은 쿠의 능력을 시험하기 위해 용돈을 xx배 올려주는 대신, 쿠에게 NN의 자릿수 중 하나를 고르게 하고, 그 수에 xx배를 하여 바꾼 금액으로 인상해 주겠다고 한다.

다시 말해, 쿠는 다음과 같은 일련의 방법으로 용돈을 인상 받을 수 있다.

  • 양의 정수 xx를 하나 고른다. xx가 시행마다 같을 필요는 없다.
  • NN의 자릿수 중 하나를 고르고, 이를 yy라 하자.
  • y:=xyy := xy로 교체한다.

예를 들어, 쿠의 용돈이 23,00023\\,000원이라고 하자. 쿠는 x=4x=4를 임의로 선택하고, 23,00023\\,000의 자릿수인 33을 선택하여 33을 44배 한 뒤, 23‾,000→212‾,0002\underline{3}\\,000 \rightarrow 2\underline{12}\\,000원으로 인상 받을 수 있다.

쿠가 이와 같은 방식을 반복해서 용돈을 KK번 인상 받는다면, 그때의 용돈의 최댓값이 얼마가 될지 궁금해졌다. 호기심이 많은 쿠를 위해 정답을 구해보자!

입력

첫째 줄에 테스트 케이스의 수를 의미하는 정수 TT가 주어진다. (1≤T≤1,000)(1\leq T\leq 1\\,000)

각 테스트 케이스는 다음 두 줄로 구성된다.

  • 첫째 줄에 쿠의 현재 용돈인 양의 정수 NN의 자릿수를 의미하는 정수 DD, 인상 받을 횟수를 의미하는 정수 KK가 공백으로 구분되어 주어진다. (1≤D,,K≤100,000)(1 \le D,\\,K \le 100\\,000)
  • 둘째 줄에 쿠의 현재 용돈을 나타내는 DD자리의 양의 정수 NN이 주어진다.

모든 테스트 케이스에 대하여 DD의 합과 KK의 합이 각각 100,000100\\,000을 초과하지 않는다.

출력

각 테스트 케이스에 대하여 쿠가 최적의 방법으로 용돈을 KK번 인상 받았을 때 용돈의 최댓값을 출력한다.

예제1

  1. 예제 1

    입력
    2
    5 1
    23100
    20 2
    10000000000000000000
    
    예상 출력
    227100
    810000000000000000000