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

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

각 자리 숫자 곱의 최댓값

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

요약
N이 20억 이하로 주어질 때, 1부터 N까지 정수 중 각 자릿수의 곱이 최대가 되는 값을 구한다.
난이도

보통10점 중 6점

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

문제

9월 10일은 숲의 날입니다. 이날을 기념하여 마법 숲의 주민들이 축제를 열기로 했고, 비버 쿠즈마가 지적 게임을 맡았습니다. 쿠즈마가 고안한 게임의 규칙은 간단합니다.

진행자가 양의 정수 NN을 발표하면, 참가자는 11부터 NN까지의 모든 양의 정수에 대해 그 정수를 이루는 각 자리 숫자(digit)들의 곱을 구하고, 그중 가장 큰 곱을 답해야 합니다.

게임을 원활히 진행하려면 모든 답을 미리 알고 있어야 합니다. 그런데 NN이 상당히 클 수 있어(1≤N≤20000000001 \le N \le 2000000000) 문제가 됩니다. 컴퓨터에 익숙하지 않은 쿠즈마를 대신하여, 양의 정수 NN이 주어졌을 때 정답을 구하는 프로그램을 작성하세요.

즉, 1≤k≤N1 \le k \le N을 만족하는 모든 정수 kk에 대해 kk의 각 자리 숫자의 곱을 계산했을 때 나올 수 있는 최댓값을 구하면 됩니다.

입력

입력의 각 줄에는 정수 NN이 하나씩 주어집니다. 입력은 파일의 끝(EOF)까지 여러 줄에 걸쳐 이어질 수 있습니다. (1≤N≤20000000001 \le N \le 2000000000)

출력

각 NN에 대해, 대응하는 줄에 11부터 NN까지의 정수 중 각 자리 숫자 곱의 최댓값을 출력합니다.

예제5

  1. 예제 1

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

    입력
    101090000
    
    예상 출력
    43046721
    
  3. 예제 3

    입력
    28994
    
    예상 출력
    10368
    
  4. 예제 4

    입력
    4876
    
    예상 출력
    2268
    
  5. 예제 5

    입력
    2789
    
    예상 출력
    1008