結果

問題 No.132 点と平面との距離
ユーザー 37zigen37zigen
提出日時 2018-04-04 20:23:02
言語 Fortran
(gFortran 13.2.0)
結果
AC  
実行時間 49 ms / 5,000 ms
コード長 969 bytes
コンパイル時間 1,184 ms
コンパイル使用メモリ 28,996 KB
実行使用メモリ 4,376 KB
最終ジャッジ日時 2023-09-08 15:51:31
合計ジャッジ時間 1,582 ms
ジャッジサーバーID
(参考情報)
judge14 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 4 ms
4,376 KB
testcase_01 AC 17 ms
4,376 KB
testcase_02 AC 49 ms
4,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

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
0