农田开发 NOJ (已知N个点选取3个求最大三角形面积问题)

E - 农田开发时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 83 测试通过 : 43 比赛描述有一块农田,田地里安放上N个小木桩,木桩的占地面积忽略不计。选择三个小木桩,使得三个小木桩的围成的三角形占地面积最大。输入 第一行一个整数N(3<=n<=100),便是木桩个数。 接下来N行,每行含有两个整数xi和yi(-10000<=xi,yi<=10000),表示第i个木桩的平面坐标。输出 仅含有一个数,表示得到的农田面积的最大值,结果保留一位小数。样例输入40 00 11 01 1样例输出0.5提示undefined题目来源NJU 7th ACM contest#inclueusing namespace std;#include<math.h>#define pow2(x) ((x)*(x))int main(){double pos[100][2];int n;cin>>n;int i,j,k;//FILE *f=fopen("C:/Users/samsung/Desktop/rec.txt","w");//fprintf(f,"x\ty\n");for(i=0;i<n;i++)scanf("%lf%lf",&pos[i][0],&pos[i][1]);//x轴坐标//y轴坐标//{// pos[i][0]=rand();// pos[i][1]=rand();// fprintf(f,"%f\t%f\n",pos[i][0],pos[i][1]);// }// fclose(f);double len1,len2,len3,s;double area;double max=0;for(i=0;i<n;i++){for(j=0;j<n;j++){for(k=0;k<n;k++){if(i!=j&&j!=k&&k!=i){len1=sqrt(pow2(pos[i][0]-pos[j][0])+ pow2(pos[i][1]-pos[j][1]));len2=sqrt(pow2(pos[i][0]-pos[k][0])+ pow2(pos[i][1]-pos[k][1]));len3=sqrt(pow2(pos[j][0]-pos[k][0])+ pow2(pos[j][1]-pos[k][1]));if(len1+len2>len3&&len1+len3>len2&&len2+len3>len1){s=(len1+len2+len3)/2;area=sqrt(s*(s-len1)*(s-len2)*(s-len3));if(area>max)max=area;}}}}}printf("%.1lf",max);return 0;}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值