有k个人想分n块金砖,每一块金砖要么给一个人,要么扔了不要。
每一个人编号为1~k。当然水明的编号一定是1。为了分这n块金砖,水明会选一个数字x,然后给x块金砖给自己,再取x块金砖给第二个人,再取x块金砖给第三个人……如此循环,直到剩下不到x块金砖,那扔掉他们。
水明不能选择超过M的x,因为贪婪是原罪,当然他也不能因为x过小,而导致有人被发了D次以上的金砖,因为没有效率。
所以请找到合适的x,使得水明能拿到尽可能多的金砖,最后输出最大的金砖数
不要输出x。
有k个人想分n块金砖,每一块金砖要么给一个人,要么扔了不要。
每一个人编号为1~k。当然水明的编号一定是1。为了分这n块金砖,水明会选一个数字x,然后给x块金砖给自己,再取x块金砖给第二个人,再取x块金砖给第三个人……如此循环,直到剩下不到x块金砖,那扔掉他们。
水明不能选择超过M的x,因为贪婪是原罪,当然他也不能因为x过小,而导致有人被发了D次以上的金砖,因为没有效率。
所以请找到合适的x,使得水明能拿到尽可能多的金砖,最后输出最大的金砖数
不要输出x。
输入一行包含四个整数n,k,M,D(2≤n≤10^18, 2≤k≤n, 1≤M≤n, 1≤D≤min(n,1000), M⋅D⋅k≥n) ----n金砖的数量,k人数,M 一次最多能给一个人的金砖数,一个人能被分配金砖的最大次数。
输出一个数,水明能给自己的最大金砖数
必须要选择有效的x
20 4 5 2
8