Chào mọi người. Em đang làm bài tập, đây là đề bài:

AMUSING NUMBERS
Dãy số vui vẻ là dãy số gồm N số từ 1 đến N được sắp xếp theo thứ tự từ điển
các số trong dãy. Ví dụ với N = 11, ta có dãy số vui vẻ 1, 10, 11, 2, 3, 4, 5, 6, 7, 8,
9.
Ta định nghĩa Q(N, K) là vị trí của số K trong dãy số vui vẻ gồm N số. Ví dụ
Q(11, 2) = 4. Cho số M và K, hãy tìm số N nhỏ nhất sao cho Q(N, K) = M.
Dữ liệu
- Gồm hai số M và K (M, K ≤ 109).
Kết quả
- Ghi số N bé nhất tìm được.
- Nếu không tồn tại N thỏa mãn, ghi ra số 0.
Sample input

4 2

Sample output

11

Em có tham khảo code của một bạn.

Code: http://ideone.com/jFTruZ

Tuy nhiên, em thắc mắc không hiểu về lệnh init, cụ thể tại sao d lại được tính như vậy.

Em mong nhận được sự giúp đỡ.

Em xin cảm ơn.