n = 1, 2, 3, ...을 순서대로 보며 Cn + D를 B진법으로 쓴 자릿수의 합이 M번 나타나는 순간 멈추고, 그때까지의 n들을 출력한다.
보통5시뮬레이션구현수학아직 제출이 없습니다시간 제한2초메모리 제한64 MB모든 자연수 n에 대해 정의된 무한 등차수열 A(n)=Cn+D가 있다. A(n1),A(n2),…,A(nM)을 B진법으로 적었을 때 자릿수의 합이 모두 같도록, 1015 이하인 서로 다른 자연수 n1,n2,…,nM을 찾아라.
양의 정수 N의 B진법 표기는 하나뿐이다. 각 i에 대해 0≤xi<B이고 xkBk+xk−1Bk−1+⋯+x1B+x0=N을 만족하는 자릿수 열 xkxk−1…x1x0이 그것이며, 자릿수의 합은 xk+⋯+x0이다.
조건을 만족하는 답은 보통 여러 가지다. 그중 하나를 다음 규칙으로 정한다. 자연수 n에 대해 A(n)의 B진법 자릿수 합을 f(n)이라고 하자. n=1,2,3,… 순서로 f(n)을 계산하면서 각 값이 나온 횟수를 센다. 어떤 값의 횟수가 처음으로 M이 되는 순간 멈추고, 그 값을 s라고 하자. 그때까지 살펴본 n 가운데 f(n)=s인 것이 정확히 M개이고, 이 M개가 답이다.
첫째 줄에 정수 C, D, B, M이 공백으로 구분되어 주어진다. (1≤C,D≤10000, 2≤B≤5000, 1≤M≤250000)
n이 1부터 107까지 가는 동안 어떤 자릿수 합의 횟수가 M에 도달하도록 입력이 주어진다.
첫째 줄에 위 규칙으로 정해진 M개의 수를 증가하는 순서로 공백 하나씩으로 구분해 출력한다.
A(ni)가 아니라 ni를 출력한다. 출력하는 수는 모두 1015 이하다.
첫 번째 예제에서 A(2)=5×2+3=13이고 A(5)=5×5+3=28이다. 13을 2진법으로 적으면 1101, 28을 적으면 11100이라서 자릿수 합이 둘 다 3이다. 값 3의 횟수가 n=5에서 처음으로 2가 되고, 그보다 먼저 2에 도달하는 값은 없다.
두 번째 예제에서 A(2)=5, A(11)=23, A(20)=41이다. 셋 다 10진법 자릿수 합이 5이고, n=20보다 먼저 횟수가 3이 되는 값은 없다.