码迷,mamicode.com
首页 > 其他好文 > 详细

哗啦啦村的刁难(4)

时间:2017-09-15 22:43:20      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:int   一个   nbsp   sqrt   时间   clip   col   限制   ble   

哗啦啦村的刁难(4)

发布时间: 2017年2月28日 20:00   最后更新: 2017年2月28日 20:02   时间限制: 1000ms   内存限制: 128M

哗啦啦村作为喵哈哈村的对头,于是他们准备给喵哈哈村一个好看。

哗啦啦村的四长老——四先生,就提出了以下问题:

给你n条边,让你从里面选出三条边,组成一个三角形,问你这个三角形最大的面积可以为多少?

如果无论如何都不能组成三角形,输出-1。

第1行:一个整数n,表示边的个数。
第2行,n个整数,表示每条边的边长。
1<=n<=100 1<=a[i]<=100

输出最大面积,无解输出-1.
保留整数即可。

复制
4
1 5 3 4
6

直接暴力求解
 1 #include <iostream>
 2 #include <bits/stdc++.h>
 3 #include <algorithm>
 4 
 5 using namespace std;
 6 int n[105];
 7 
 8 int main() {
 9     int a;
10     while (cin >> a) {
11         double Max=-1;
12         memset(n,0,sizeof(n));
13         for (int i = 0; i < a; i++) {
14             cin >> n[i];
15         }
16         sort(n, n + a);
17             for (int i = 0; i < a; i++) {
18                 for (int j = i + 1; j < a; j++) {
19                     for (int k = j + 1; k < a; k++) {
20                         if(n[i]+n[j]>n[k]) {
21                             double y = (n[i] + n[j] + n[k])/2.0;
22                             double x = sqrt(y * (y - n[i]) * (y - n[j]) * (y - n[k]));
23                             if(x>Max) Max=x;
24                         }else
25                             break;
26                     }
27                 }
28             }
29         printf("%.0f\n", Max);  
30     }
31     return 0;
32 }

 

 

哗啦啦村的刁难(4)

标签:int   一个   nbsp   sqrt   时间   clip   col   限制   ble   

原文地址:http://www.cnblogs.com/zllwxm123/p/7528535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!