結果

問題 No.334 門松ゲーム
ユーザー noriocnorioc
提出日時 2016-01-16 00:57:26
言語 Scala(Beta)
(3.4.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,112 bytes
コンパイル時間 4,672 ms
コンパイル使用メモリ 228,580 KB
最終ジャッジ日時 2024-04-27 02:17:04
合計ジャッジ時間 4,971 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
-- [E040] Syntax Error: Main.scala:36:32 ---------------------------------------
36 |  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)

  // xs.length <= 12 なのでメモ化しなくても間に合う
  def calc(turn: Int, xs: Array[Int]): Boolean = {
    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))) {

            val ys = for (m <- 0 to xs.length-1 if m != i && m != j && m != k)
                       yield xs(m)
            val ret = calc(turn+1, ys.toArray)
            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