[编程题] 寻找三角形
来源:互联网 发布:linux gtk编程 编辑:程序博客网 时间:2024/05/29 14:28
三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用’R’, ‘G’, ‘B’表示。
现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大。
但是三角形必须满足:三个点的颜色要么全部相同,要么全部不同。
输入描述:
首先输入一个正整数N三维坐标系内的点的个数.(N <= 50)
接下来N行,每一行输入 c x y z,c为’R’, ‘G’, ‘B’ 的其中一个。x,y,z是该点的坐标。(坐标均是0到999之间的整数)
输出描述:
输出一个数表示最大的三角形面积,保留5位小数。
输入例子1:
5
R 0 0 0
R 0 4 0
R 0 0 3
G 92 14 7
G 12 16 8
输出例子1:
6.00000
#include <bits/stdc++.h>using namespace std;struct noode{ char coolor; int x,y,z;};double dis (noode a,noode b){ return sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y)+1.0*(a.z-b.z)*(a.z-b.z));}int main(){ int n; double mmax=-1e9; cin>>n; noode ai[100]; for(int i=0;i<n;i++) { cin>>ai[i].coolor>>ai[i].x>>ai[i].y>>ai[i].z; } for(int i=0;i<n;i++) { for(int j=0;j<n;j++ ) { //if(i==j) continue; for(int k=0;k<n;k++) { //if(k==i||k==j) continue; if((ai[i].coolor==ai[j].coolor&&ai[j].coolor==ai[k].coolor)||(ai[i].coolor!=ai[j].coolor&&ai[j].coolor!=ai[k].coolor&&ai[i].coolor!=ai[k].coolor)) { double a=dis(ai[i],ai[j]); double b=dis(ai[i],ai[k]); double c=dis(ai[j],ai[k]); double p=(a+b+c)/2; double mianji=sqrt(p*(p-a)*(p-b)*(p-c)); if(mianji>mmax) mmax=mianji; } } } } printf("%.5lf\n",mmax); return 0;}
阅读全文
0 0
- [编程题] 寻找三角形
- [编程题] 寻找三角形
- [编程题] 寻找三角形
- [编程题] 寻找三角形
- [编程题] 寻找三角形
- 寻找三角形(编程题)
- 【算法题】寻找三角形
- mapreduce编程---寻找图中的三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 3--百度2017春招笔试真题编程题集合--寻找三角形 (Python)
- 百度2017春招笔试真题编程题集合--寻找三角形
- 百度2017春招笔试真题[编程题] 寻找三角形
- 百度2017春招笔试真题编程题集合:寻找三角形 [python]
- POJ 2195 Going Home(二分图最优匹配)
- 无题
- eclipse调试jdk源码
- ajax 多条件模糊查询分页
- js函数去抖和节流示例
- [编程题] 寻找三角形
- chatterbot配合ChatterBotCorpusTrainer使用
- 逆序输出单词
- wex5开发-文件下载(可实现app内下载更新apk)
- 109. Convert Sorted List to Binary Search Tree
- 测试用例设计——web类测试
- 数据结构01_线性表_实验楼学习笔记
- hiveQL数据定义
- java中动态的读取src下面的配置文件,动态的读取同个包下面的配置文件。