結果
| 問題 | No.132 点と平面との距離 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-03-04 10:30:12 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 53 ms / 5,000 ms |
| コード長 | 627 bytes |
| 記録 | |
| コンパイル時間 | 633 ms |
| コンパイル使用メモリ | 74,676 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-13 23:33:39 |
| 合計ジャッジ時間 | 1,037 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 |
コンパイルメッセージ
main.cpp:18:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
18 | main()
| ^~~~
ソースコード
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
struct Point{double x,y,z;}P,Q[300];
void in(Point&p){cin>>p.x>>p.y>>p.z;}
int N;
double dist(Point A,Point B,Point C)
{
B.x-=A.x;B.y-=A.y;B.z-=A.z;
C.x-=A.x;C.y-=A.y;C.z-=A.z;
double a=B.y*C.z-B.z*C.y;
double b=B.z*C.x-B.x*C.z;
double c=B.x*C.y-B.y*C.x;
double d=-a*A.x-b*A.y-c*A.z;
return abs(a*P.x+b*P.y+c*P.z+d)/sqrt(a*a+b*b+c*c);
}
main()
{
cin>>N;
in(P);
for(int i=0;i<N;i++)in(Q[i]);
double ans=0;
for(int i=0;i<N;i++)for(int j=i+1;j<N;j++)for(int k=j+1;k<N;k++)ans+=dist(Q[i],Q[j],Q[k]);
cout<<fixed<<setprecision(16)<<ans<<endl;
}