哗啦啦村的刁难(4)

哗啦啦村的刁难(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
", Max);  
30     }
31     return 0;
32 }
 
原文地址:https://www.cnblogs.com/zllwxm123/p/7528535.html