結果

問題 No.55 正方形を描くだけの簡単なお仕事です。
ユーザー noriocnorioc
提出日時 2015-09-05 10:54:09
言語 Scala(Beta)
(3.4.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,135 bytes
コンパイル時間 4,255 ms
コンパイル使用メモリ 220,580 KB
最終ジャッジ日時 2024-11-14 19:10:33
合計ジャッジ時間 4,606 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
-- [E040] Syntax Error: Main.scala:4:56 ----------------------------------------
4 |  def calc(a: (Int, Int), b: (Int, Int), c: (Int, Int)) {
  |                                                        ^
  |                                               '=' expected, but '{' found
-- [E040] Syntax Error: Main.scala:39:32 ---------------------------------------
39 |  def main(args: Array[String]) {
   |                                ^
   |                                '=' expected, but '{' found
2 errors found

ソースコード

diff #

import scala.math._

object Main {
  def calc(a: (Int, Int), b: (Int, Int), c: (Int, Int)) {

    // 内積
    def dot(a: (Int, Int), b: (Int, Int)): Int =
      a._1 * b._1 + a._2 * b._2

    // ベクトルの長さ
    def len(v: (Int, Int)) =
      sqrt(v._1 * v._1 + v._2 * v._2)

    Array(a, b, c).permutations.foreach { case Array(a, b, c) =>
      val ab = (b._1 - a._1, b._2 - a._2)
      val ac = (c._1 - a._1, c._2 - a._2)

      // ベクトル ab, ac の内積がゼロなら直交している
      if (dot(ab, ac) == 0 && len(ab) == len(ac)) {
        val ad = (ab._1 + ac._1, ab._2 + ac._2)
        // println("a:", a)
        // println("ab:", ab)
        // println("ac:", ac)
        // println("ad:", ad)

        val d = (ad._1 + a._1, ad._2 + a._2)

        val cd = (d._1 - c._1, d._2 - c._2)
        if (len(ac) == len(cd)) {
          println(s"${d._1} ${d._2}")
          return
        }
      }
    }

    println(-1) // not found
  }

  def main(args: Array[String]) {
    val sc = new java.util.Scanner(System.in)
    val x1, y1, x2, y2, x3, y3 = sc.nextInt
    calc((x1, y1), (x2, y2), (x3, y3))
  }
}
0