注意“要求每个人必须获得相同面积的蛋糕”,且n <= 10。
对于一块蛋糕,切割点必须是均匀分布的,如果已知了要切割多少份,那么切割点的位置是可以算出来的。
所以我们可以枚举切成的两块小蛋糕包含多少份。
大暴搜就行了。
/* Footprints In The Blood Soaked Snow */
#include <cstdio>
#include <algorithm>
using namespace std;
typedef double DB;
const int inf = 0x3f3f3f3f;
inline DB dfs(DB x, DB y, int n) {
if(n == 1) return x < y ? y / x : x / y;
DB u = x / n, v = y / n, ans = inf;
for(int i = 1; i < n; i++) {
ans = min(ans, max(dfs(u * i, y, i), dfs(u * (n - i), y, n - i)));
ans = min(ans, max(dfs(x, v * i, i), dfs(x, v * (n - i), n - i)));
}
return ans;
}
int main() {
int x, y, n; scanf("%d%d%d", &x, &y, &n);
printf("%.6lf\n", dfs(x, y, n));
return 0;
}