結果

問題 No.240 ナイト散歩
ユーザー ともき
提出日時 2015-07-10 23:05:53
言語 Scala(Beta)
(2.13.0)
結果
AC  
実行時間 820 ms
コード長 912 Byte
コンパイル時間 6,444 ms
使用メモリ 44,036 KB
最終ジャッジ日時 2019-09-11 11:46:32

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
99_challenge01.txt AC 804 ms
44,020 KB
99_challenge02.txt AC 800 ms
44,016 KB
challenge01.txt AC 787 ms
44,024 KB
challenge02.txt AC 787 ms
44,016 KB
sample1.txt AC 788 ms
44,036 KB
sample2.txt AC 784 ms
44,028 KB
sample3.txt AC 797 ms
43,276 KB
sample4.txt AC 785 ms
44,012 KB
system_test1.txt AC 792 ms
44,012 KB
system_test2.txt AC 793 ms
44,028 KB
system_test3.txt AC 789 ms
43,280 KB
system_test4.txt AC 820 ms
44,028 KB
system_test5.txt AC 787 ms
44,032 KB
system_test6.txt AC 805 ms
44,020 KB
system_test7.txt AC 796 ms
44,024 KB
system_test8.txt AC 797 ms
44,028 KB
system_test9.txt AC 788 ms
44,036 KB
system_test10.txt AC 790 ms
44,012 KB
test1.txt AC 797 ms
44,028 KB
test2.txt AC 802 ms
44,016 KB
test3.txt AC 783 ms
44,032 KB
test4.txt AC 788 ms
44,028 KB
test5.txt AC 791 ms
44,036 KB
test6.txt AC 792 ms
44,020 KB
test7.txt AC 786 ms
44,028 KB
test8.txt AC 791 ms
44,012 KB
test9.txt AC 790 ms
44,028 KB
test10.txt AC 790 ms
44,024 KB
test11.txt AC 783 ms
44,024 KB
test12.txt AC 786 ms
44,024 KB
test13.txt AC 800 ms
44,020 KB
test14.txt AC 797 ms
44,000 KB
test15.txt AC 792 ms
44,036 KB
test16.txt AC 795 ms
43,292 KB
テストケース一括ダウンロード

ソースコード

diff #
import scala.io.StdIn.readLine
import scala.collection.mutable.PriorityQueue
import scala.annotation.tailrec

// PriorityQueue[Long]()(scala.math.Ordering.Long.reverse)
package Lib {
  object EnRich {
    implicit class AString(val self : String) extends AnyVal {
      def splitToIntArray = self.split(" ").map(_.toInt)
    }
  }
}

import Lib.EnRich._
object Main {
  def go(x : Int, y : Int, k : Int = 3) : Set[(Int,Int)] = {
    if(k == 0) Set((x,y))
    else {
      (for(i <- Vector(-2,-1,1,2);
          j <- Vector(-2,-1,1,2);
          if Math.abs(i) + Math.abs(j) == 3)
       yield (i,j)
      ).map({case (i,j) => go(x+i,y+j,k-1)})
      .fold(Set[(Int,Int)]())(_ ++ _) + ((x,y))
    }
  }
  def main(args : Array[String]) : Unit = {
    val (x,y) = {
      val xy = readLine.splitToIntArray
      (xy(0),xy(1))
    }
    val ans = if(go(0,0,3) contains (x,y)) "YES" else "NO"
    println(ans)
  }
}
0