자릿수 합이 같은 등차수열의 항

n = 1, 2, 3, ...을 순서대로 보며 Cn + D를 B진법으로 쓴 자릿수의 합이 M번 나타나는 순간 멈추고, 그때까지의 n들을 출력한다.

보통5시뮬레이션구현수학아직 제출이 없습니다시간 제한2초메모리 제한64 MB

문제

모든 자연수 nn에 대해 정의된 무한 등차수열 A(n)=Cn+DA(n) = Cn + D가 있다. A(n1),A(n2),,A(nM)A(n_1), A(n_2), \dots, A(n_M)BB진법으로 적었을 때 자릿수의 합이 모두 같도록, 101510^{15} 이하인 서로 다른 자연수 n1,n2,,nMn_1, n_2, \dots, n_M을 찾아라.

양의 정수 NNBB진법 표기는 하나뿐이다. 각 ii에 대해 0xi<B0 \le x_i < B이고 xkBk+xk1Bk1++x1B+x0=Nx_k B^k + x_{k-1} B^{k-1} + \dots + x_1 B + x_0 = N을 만족하는 자릿수 열 xkxk1x1x0x_k x_{k-1} \dots x_1 x_0이 그것이며, 자릿수의 합은 xk++x0x_k + \dots + x_0이다.

조건을 만족하는 답은 보통 여러 가지다. 그중 하나를 다음 규칙으로 정한다. 자연수 nn에 대해 A(n)A(n)BB진법 자릿수 합을 f(n)f(n)이라고 하자. n=1,2,3,n = 1, 2, 3, \dots 순서로 f(n)f(n)을 계산하면서 각 값이 나온 횟수를 센다. 어떤 값의 횟수가 처음으로 MM이 되는 순간 멈추고, 그 값을 ss라고 하자. 그때까지 살펴본 nn 가운데 f(n)=sf(n) = s인 것이 정확히 MM개이고, 이 MM개가 답이다.

입력

첫째 줄에 정수 CC, DD, BB, MM이 공백으로 구분되어 주어진다. (1C,D100001 \le C, D \le 10000, 2B50002 \le B \le 5000, 1M2500001 \le M \le 250000)

nn11부터 10710^7까지 가는 동안 어떤 자릿수 합의 횟수가 MM에 도달하도록 입력이 주어진다.

출력

첫째 줄에 위 규칙으로 정해진 MM개의 수를 증가하는 순서로 공백 하나씩으로 구분해 출력한다.

A(ni)A(n_i)가 아니라 nin_i를 출력한다. 출력하는 수는 모두 101510^{15} 이하다.

힌트

첫 번째 예제에서 A(2)=5×2+3=13A(2) = 5 \times 2 + 3 = 13이고 A(5)=5×5+3=28A(5) = 5 \times 5 + 3 = 28이다. 1313을 2진법으로 적으면 11011101, 2828을 적으면 1110011100이라서 자릿수 합이 둘 다 33이다. 값 33의 횟수가 n=5n = 5에서 처음으로 22가 되고, 그보다 먼저 22에 도달하는 값은 없다.

두 번째 예제에서 A(2)=5A(2) = 5, A(11)=23A(11) = 23, A(20)=41A(20) = 41이다. 셋 다 10진법 자릿수 합이 55이고, n=20n = 20보다 먼저 횟수가 33이 되는 값은 없다.