結果
| 問題 | No.132 点と平面との距離 | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2018-04-04 20:23:02 | 
| 言語 | Fortran (gFortran 14.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 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 3 | 
ソースコード
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
            
            
            
        