結果

問題 No.334 門松ゲーム
ユーザー noriocnorioc
提出日時 2016-01-16 00:14:06
言語 Scala(Beta)
(3.4.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,292 bytes
コンパイル時間 5,921 ms
コンパイル使用メモリ 219,024 KB
最終ジャッジ日時 2023-09-11 23:04:34
合計ジャッジ時間 6,612 ms
ジャッジサーバーID
(参考情報)
judge13 / judge11
このコードへのチャレンジ(β)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
-- [E040] Syntax Error: Main.scala:48:32 ---------------------------------------
48 |  def main(args: Array[String]) {
   |                                ^
   |                                '=' expected, but '{' found
1 error found

ソースコード

diff #

import math._

object Main {
  def isValid(a: Int, b: Int, c: Int): Boolean =
    return (a < b && b > c) || (a > b && b < c)

  def calc(turn: Int, xs: Array[Int]): Boolean = {
//    if (xs.length < 3) {
//      return turn % 2 == 1
//    }

    val ys = Array.fill(xs.length-3)(0)

    for (i <- 0 to xs.length-1) {
      for (j <- i+1 to xs.length-1) {
        for (k <- j+1 to xs.length-1) {
          if (isValid(xs(i), xs(j), xs(k))) {

            var p = 0
            for (m <- 0 to xs.length-1) {
              if (m != i && m != j && m != k) {
                ys(p) = xs(m)
                p += 1
              }
            }
            // println(s"take turn:$turn ${xs(i)} ${xs(j)} ${xs(k)}")

            val ret = calc(turn+1, ys)
            if (turn % 2 == 0) {
              if (ret) {
                if (turn == 0) {
                  println(s"$i $j $k")
                }
                return true
              }
            }
            else {
              if (!ret) return false
            }
          }
        }
      }
    }

    return turn % 2 == 1
  }

  def main(args: Array[String]) {
    val sc = new java.util.Scanner(System.in)
    val n = sc.nextInt
    val xs = Array.fill(n)(sc.nextInt)

    val win = calc(0, xs)
    if (!win) println(-1)
  }
}
0