Candy - PMT và những chiếc kẹo
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 512 megabyte
Đăng bởi: trunglhpk97

Có n cái kẹo cần chia cho k người. Mỗi chiếc kẹo có được chia cho chính xác một người hoặc bị vứt bỏ.

K người được đánh số theo thứ tự từ 1 đến k. PMT là người số 1 trong k người đó. Để chia kẹo cho k người, PMT quyết định lựa chọn một số nguyên dương x , rồi chia cho người thứ nhất x cái kẹo, người thứ hai x cái kẹo, … người thứ k x cái kẹo. Nếu còn thừa, lại tiếp tục chia cho người thứ nhất x cái kẹo, người thứ 2 x cái kẹo, … và chia theo vòng lặp như thế. Việc chia kẹo chỉ dừng lại khi số kẹo còn lại hết hoặc không chia hết cho x.

PMT không được lựa chọn x > M vì điều đó được coi làm tham lam. Ngoài ra, số lần được nhận kẹo của mỗi người không được  lớn hơn D.

Hãy giúp PMT lựa chọn số x sao cho số kẹo mà cô ấy nhận được là lớn nhất ( Tuy bị sâu răng từ nhỏ nhưng PMT rất tham lam nên muốn mình được thật nhiều kẹo).

Input : Chứa bốn số nguyên dương n,k,M,D ( n <= 10^18, 2 <= k <= n, D <= 1000).

Output : In ra số kẹo lớn nhất mà PMT có thể nhận được.

Ví dụ

input 

20 4 5 2

output:

8

*Giải thích : Nếu PMT chọn x = 4 : Người thứ 1 nhận 4 kẹo, người thứ 2 nhận 4 kẹo, người thứ 4 nhận 4 kẹo, người thứ 4 nhận 4 kẹo và người thứ 1 lại được nhận thêm 4 chiếc nữa. Tổng mà PMT nhận được : 8.

Nếu chọn x = 5 : PMT chỉ nhận được 5 chiếc kẹo.

Nếu chọn x = 3 : PMT chỉ nhận được 6 chiếc kẹo.

PMT không thể chọn x = 1 hoặc x = 2 vì khi đấy, số lần nhận kẹo của PMT sẽ lớn hơn 2.

Back to Top