結果

問題 No.240 ナイト散歩
ユーザー toshiro_yanagi
提出日時 2018-06-22 16:26:38
言語 Nim
(2.2.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 580 bytes
コンパイル時間 3,468 ms
コンパイル使用メモリ 65,744 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-06-30 17:59:33
合計ジャッジ時間 4,630 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

import strutils, sequtils, math

let
  XY = stdin.readLine.split.map parseInt
  (X, Y) = (XY[0], XY[1])
var
  Arr, Brr = newSeq[tuple[x, y: int]]()

Arr.add (0, 0)
for x_abs in 1 .. 2:
  let y_abs = 3 - x_abs
  for x_sgn in countup(-1, 1, 2):
    for y_sgn in countup(-1, 1, 2):
      Arr.add (x_sgn * x_abs, y_sgn * y_abs)

proc fn(n: int): tuple[x, y: int] =
  var v = n
  while v != 0:
    result.x += Arr[v mod Arr.len].x
    result.y += Arr[v mod Arr.len].y
    v = v div Arr.len

for i in 0 ..< Arr.len ^ 3:
  Brr.add i.fn


if (X, Y) in Brr:
  echo "YES"
else:
  echo "NO"
0