寻找三角形(待调试)
来源:互联网 发布:中世纪 食物 知乎 编辑:程序博客网 时间:2024/06/06 05:05
#include<bits/stdc++.h>using namespace std;int r[1000][3];int g[1000][3];int b[1000][3];int main() { int n; while(cin>>n) { int rn=0,gn=0,bn=0; char c; int x,y,z; for(int i=0;i<n;i++) { cin>>c>>x>>y>>z; if(c=='R'){ r[rn][0]=x; r[rn][1]=y; r[rn][2]=z; rn++; } else if(c=='G'){ g[gn][0]=x; g[gn][1]=y; g[gn][2]=z; gn++; } else if(c=='B'){ b[bn][0]=x; b[bn][1]=y; b[bn][2]=z; bn++; } } double max=0; if(rn>=3) { for(int i1=0;i1<rn-2;i1++) for(int i2=i1+1;i2<rn-1;i2++) for(int i3=i2+1;i3<rn;i3++) { double d1=sqrt((r[i1][0]-r[i2][0])*(r[i1][0]-r[i2][0])+(r[i1][1]-r[i2][1])*(r[i1][1]-r[i2][1])+(r[i1][2]-r[i2][2])*(r[i1][2]-r[i2][2])); double d2=sqrt((r[i1][0]-r[i3][0])*(r[i1][0]-r[i3][0])+(r[i1][1]-r[i3][1])*(r[i1][1]-r[i3][1])+(r[i1][2]-r[i3][2])*(r[i1][2]-r[i3][2])); double d3=sqrt((r[i3][0]-r[i2][0])*(r[i3][0]-r[i2][0])+(r[i3][1]-r[i2][1])*(r[i3][1]-r[i2][1])+(r[i3][2]-r[i2][2])*(r[i3][2]-r[i2][2])); double l=(d1+d2+d3)/2; double s=sqrt(l*(l-d1)*(l-d2)*l-d3); if(s>max)max=s; } } if(gn>=3) { for(int i1=0;i1<gn-2;i1++) for(int i2=i1+1;i2<gn-1;i2++) for(int i3=i2+1;i3<gn;i3++) { double d1=sqrt((g[i1][0]-g[i2][0])*(g[i1][0]-g[i2][0])+(g[i1][1]-g[i2][1])*(g[i1][1]-g[i2][1])+(g[i1][2]-g[i2][2])*(g[i1][2]-g[i2][2])); double d2=sqrt((g[i1][0]-g[i3][0])*(g[i1][0]-g[i3][0])+(g[i1][1]-g[i3][1])*(g[i1][1]-g[i3][1])+(g[i1][2]-g[i3][2])*(g[i1][2]-g[i3][2])); double d3=sqrt((g[i3][0]-g[i2][0])*(g[i3][0]-g[i2][0])+(g[i3][1]-g[i2][1])*(g[i3][1]-g[i2][1])+(g[i3][2]-g[i2][2])*(g[i3][2]-g[i2][2])); double l=(d1+d2+d3)/2; double s=sqrt(l*(l-d1)*(l-d2)*l-d3); if(s>max)max=s; } } if(bn>=3) { for(int i1=0;i1<bn-2;i1++) for(int i2=i1+1;i2<bn-1;i2++) for(int i3=i2+1;i3<bn;i3++) { double d1=sqrt((b[i1][0]-b[i2][0])*(b[i1][0]-b[i2][0])+(b[i1][1]-b[i2][1])*(b[i1][1]-b[i2][1])+(b[i1][2]-b[i2][2])*(b[i1][2]-b[i2][2])); double d2=sqrt((b[i1][0]-b[i3][0])*(b[i1][0]-b[i3][0])+(b[i1][1]-b[i3][1])*(b[i1][1]-b[i3][1])+(b[i1][2]-b[i3][2])*(b[i1][2]-b[i3][2])); double d3=sqrt((b[i3][0]-b[i2][0])*(b[i3][0]-b[i2][0])+(b[i3][1]-b[i2][1])*(b[i3][1]-b[i2][1])+(b[i3][2]-b[i2][2])*(b[i3][2]-b[i2][2])); double l=(d1+d2+d3)/2; double s=sqrt(l*(l-d1)*(l-d2)*l-d3); if(s>max)max=s; } } for(int i1=0;i1<rn;i1++) for(int i2=0;i2<gn;i2++) for(int i3=0;i3<bn;i3++) { double d1=sqrt((r[i1][0]-g[i2][0])*(r[i1][0]-g[i2][0])+(r[i1][1]-g[i2][1])*(r[i1][1]-g[i2][1])+(r[i1][2]-g[i2][2])*(r[i1][2]-g[i2][2])); double d2=sqrt((r[i1][0]-b[i3][0])*(r[i1][0]-b[i3][0])+(r[i1][1]-b[i3][1])*(r[i1][1]-b[i3][1])+(r[i1][2]-b[i3][2])*(r[i1][2]-b[i3][2])); double d3=sqrt((b[i3][0]-g[i2][0])*(b[i3][0]-g[i2][0])+(b[i3][1]-g[i2][1])*(b[i3][1]-g[i2][1])+(b[i3][2]-g[i2][2])*(b[i3][2]-g[i2][2])); double l=(d1+d2+d3)/2; double s=sqrt(l*(l-d1)*(l-d2)*l-d3); if(s>max)max=s; } cout<<max<<endl; } return 0;}
阅读全文
0 0
- 寻找三角形(待调试)
- 寻找三角形(编程题)
- 寻找三角形 (海伦公式)
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- 寻找三角形
- gdb调试(待)补充
- spfa模板(待调试)
- 快速寻找满足条件的两个数(待完成)
- 牛客网 寻找三角形
- 百度笔试-寻找三角形
- [编程题] 寻找三角形
- [编程题] 寻找三角形
- 寻找三角形-百度-最大值
- 百度:寻找三角形
- solr erro:no servers hosting shard
- DeepLearning tutorial ①
- java nio 基础
- 70. Climbing Stairs
- mysql开启远程访问
- 寻找三角形(待调试)
- Hibernate的一级缓存
- javax.servlet.ServletException: Could not resolve view with name 'xxx' in servlet with name
- Eclipse kotlin插件频繁出错的解决办法
- C++11 模板改进
- 网络嗅探针 Sniffing-Dog
- vee-validate的使用个人小结
- 最长递增子序列详解(longest increasing subsequence)
- Java Swing1 基本框架