Description
给出一张 h×w 的长方形纸,现在要从上面剪下三个相同大小的正方形,问边长最大值
Input
两个整数 h,w(1≤h,w≤1000)
Output
输出可以得到的正方形边长最大值
Sample Input
210 297
Sample Output
105.0
Solution
三个正方形一排或一个正方形放在其余两个正方形上面,再根据底边是长还是宽共四种情况,取最大值即可
Code
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<ctime>
using namespace std;
typedef long long ll;
typedef pair<int,int>P;
const int INF=0x3f3f3f3f,maxn=100001;
int main()
{
freopen("alex.in","r",stdin);
freopen("alex.out","w",stdout);
double a,b;
while(~scanf("%lf%lf",&a,&b))
{
double ans=min(0.5*a,0.5*b);
ans=max(ans,min(a,b/3.0));
ans=max(ans,min(a/3.0,b));
printf("%.3f\n",ans);
}
return 0;
}