結果
| 問題 |
No.132 点と平面との距離
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-01-22 17:39:42 |
| 言語 | Scala(Beta) (3.6.2) |
| 結果 |
CE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 898 bytes |
| コンパイル時間 | 6,455 ms |
| コンパイル使用メモリ | 240,264 KB |
| 最終ジャッジ日時 | 2024-11-14 18:57:58 |
| 合計ジャッジ時間 | 6,884 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
[31m[31m-- [E100] Syntax Error: Main.scala:19:46 ---------------------------------------[0m[0m [31m19 |[0m scala.math.abs(a([31m0[0m).inner_product(t)) / t.norm [31m[31m |[0m ^^^^^^[0m [31m |[0m [33mmethod[0m [35mnorm[0m in [33mclass[0m [35mVector3[0m must be called with () argument [31m |[0m [31m |[0m longer explanation available when compiling with `-explain` 1 error found
ソースコード
import scala.io.StdIn
class Vector3(_x: Double, _y: Double, _z: Double) {
val (x, y, z) = (_x, _y, _z)
def this() = this(0, 0, 0)
def this(a: Array[Double]) = this(a(0), a(1), a(2))
def -(o: Vector3): Vector3 = new Vector3(x - o.x, y - o.y, z - o.z)
def cross_product(o: Vector3): Vector3 = new Vector3(y * o.z - z * o.y, z * o.x - x * o.z, x * o.y - y * o.x)
def inner_product(o: Vector3): Double = x * o.x + y * o.y + z * o.z
def norm(): Double = scala.math.sqrt(x * x + y * y + z * z)
}
object Main extends App {
val n: Int = StdIn.readInt()
val p: Vector3 = new Vector3(StdIn.readLine().split(" ").map(_.toDouble))
val l = (1 to n).map(_ => new Vector3(StdIn.readLine().split(" ").map(_.toDouble)) - p)
val ans = l.combinations(3).map { a =>
val t = (a(1) - a(0)).cross_product(a(2) - a(0))
scala.math.abs(a(0).inner_product(t)) / t.norm
}.sum
println(ans)
}