만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

정수론

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

요약
매우 큰 정수 n을 1이 i개인 수 o_i의 정수 배 합으로 나타내고, i와 |x_i|의 곱의 합이 가장 작은 값을 구합니다.
난이도

어려움10점 중 8점

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

문제

oi=1…1⏟i timeso_i = \underbrace{1 \dots 1}_{i\text{ times}} 는 십진 표기에서 1이 ii 개 나열된 수이다.

Bobo에게 정수 nn이 있다. ∑i=1∞oi⋅xi=n\sum_{i = 1}^{\infty} o_i \cdot x_i = n을 만족하는 수열 (x1,x2,… )(x_1, x_2, \dots)을 찾아라. 수열의 각 항은 음수일 수도 있다. 이때 ∑i=1∞i⋅∣xi∣\sum_{i = 1}^{\infty} i \cdot |x_i|가 최소가 되어야 한다.

입력

입력은 여러 개의 테스트 케이스로 이루어지며, 파일의 끝(EOF)에서 끝난다. 각 테스트 케이스의 첫 줄에는 정수 nn이 주어진다.

출력

각 테스트 케이스마다 ∑i=1∞i⋅∣xi∣\sum_{i = 1}^{\infty} i \cdot |x_i|의 최솟값을 출력한다.

제한

  • 1≤n<1050001 \leq n < 10^{5000}
  • 모든 입력에 대해 nn의 십진수 자릿수 합은 5000050000을 넘지 않는다.

힌트

첫 번째 테스트 케이스에서는 x1=x2=1x_1 = x_2 = 1이고, x3=x4=⋯=0x_3 = x_4 = \dots = 0이다. 최솟값은 1×1+2×1=31 \times 1 + 2 \times 1 = 3이다.

두 번째 테스트 케이스에서는 x1=0x_1 = 0, x2=−1x_2 = -1, x3=1x_3 = 1이고, x4=x5=⋯=0x_4 = x_5 = \dots = 0이다. 최솟값은 2×1+3×1=52 \times 1 + 3 \times 1 = 5이다.

예제1

  1. 예제 1

    입력
    12
    100
    998244353
    
    예상 출력
    3
    5
    76