上题:西电oj 1118 : http://acm.xidian.edu.cn/problem.php?id=1118
内角均为120度的六边形不一定是正六边形!!
内角均为120度的六边形不一定是正六边形!!
内角均为120度的六边形不一定是正六边形!!
重要的事情说三遍~!
内角均为120度的六边形的特点:对边的差相等
面积求法:
延长三边交于三点,得到正三角形
六边形面积=大正三角形面积-3个小正三角形面积
然后枚举6边找符合要求的六边形最大面积就好啦~
代码:
#include <bits/stdc++.h>
using namespace std;
int mm[6];
int main()
{
while (scanf("%d %d %d %d %d %d",&mm[0],&mm[1],&mm[2],&mm[3],&mm[4],&mm[5])!=EOF)
{
double sum=-1.0,ma=-1.0;
sort(mm, mm+6);
do
{
int t1 = mm[5]+mm[1]+mm[0];
int t2 = mm[3]+mm[1]+mm[2];
int t3 = mm[5]+mm[4]+mm[3];
if (t1==t2 && t2==t3)
{
sum=sqrt(3)*(t1*t1-mm[1]*mm[1]-mm[3]*mm[3]-mm[5]*mm[5])/4.0;
ma=max(ma,sum);
}
}while (next_permutation(mm,mm+6));
if (ma!=-1.0)
printf("%.2lf\n",ma);
else printf("0\n");
memset(mm, 0, sizeof(mm));
}
return 0;
}