因为需要切的每个人分得相同面积蛋糕,又必须与x,y平行,n又那么小,枚举切的位置然后爆搜就好了。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
double n,m;int z;
double dfs(double x,double y,int k){
if(x<y)swap(x,y);
if(k==1)return x/y;
double ans=1e9;
for(int i=1;i<k;i++){
ans=min(ans,max(dfs(x/k*i,y,i),dfs(x/k*(k-i),y,k-i)));
ans=min(ans,max(dfs(x,y/k*i,i),dfs(x,y/k*(k-i),k-i)));
}
return ans;
}
int main(){
scanf("%lf%lf%d",&n,&m,&z);
printf("%.6lf",dfs(n,m,z));
return 0;
}