結果
問題 | No.132 点と平面との距離 |
ユーザー | 37zigen |
提出日時 | 2018-04-04 20:23:02 |
言語 | Fortran (gFortran 13.2.0) |
結果 |
AC
|
実行時間 | 31 ms / 5,000 ms |
コード長 | 969 bytes |
コンパイル時間 | 1,896 ms |
コンパイル使用メモリ | 33,408 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-26 08:52:06 |
合計ジャッジ時間 | 1,244 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 4 ms
5,248 KB |
testcase_01 | AC | 11 ms
5,376 KB |
testcase_02 | AC | 31 ms
5,376 KB |
ソースコード
program main implicit none integer::n integer::i,j,k,r real(kind=8)::s,a,b,c,tmp real(kind=8)::px,py,pz,x(300),y(300),z(300),area,height,volume,ans=0 real(kind=8)::dist(300,300) read*,n read(*,*)px,py,pz do i=1,n read(*,*)x(i),y(i),z(i) x(i)=x(i)-px y(i)=y(i)-py z(i)=z(i)-pz end do do i=1,300 do j=1,300 dist(i,j)=sqrt((x(i)-x(j))*(x(i)-x(j))+(y(i)-y(j))*(y(i)-y(j))+(z(i)-z(j))*(z(i)-z(j))) end do end do do i=1,n do j=i+1,n do k=j+1,n a=dist(i,j) b=dist(j,k) c=dist(k,i) s=(a+b+c)/2 area=sqrt(s*(s-a)*(s-b)*(s-c)) volume=(x(i)*y(j)*z(k)-x(i)*z(j)*y(k)-y(i)*x(j)*z(k)+y(i)*z(j)*x(k)+z(i)*x(j)*y(k)-z(i)*y(j)*x(k))/2 ans=ans+max(volume,-volume)/area end do end do end do print*,ans end program