結果

問題 No.2564 衝突予測
ユーザー chaemonchaemon
提出日時 2023-12-02 15:48:08
言語 Nim
(2.0.2)
結果
AC  
実行時間 284 ms / 2,000 ms
コード長 16,184 bytes
コンパイル時間 4,413 ms
コンパイル使用メモリ 95,932 KB
実行使用メモリ 6,548 KB
最終ジャッジ日時 2023-12-02 15:48:16
合計ジャッジ時間 8,459 ms
ジャッジサーバーID
(参考情報)
judge12 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,548 KB
testcase_01 AC 1 ms
6,548 KB
testcase_02 AC 2 ms
6,548 KB
testcase_03 AC 264 ms
6,548 KB
testcase_04 AC 261 ms
6,548 KB
testcase_05 AC 276 ms
6,548 KB
testcase_06 AC 261 ms
6,548 KB
testcase_07 AC 265 ms
6,548 KB
testcase_08 AC 265 ms
6,548 KB
testcase_09 AC 268 ms
6,548 KB
testcase_10 AC 284 ms
6,548 KB
testcase_11 AC 275 ms
6,548 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import macros
macro Please(x): untyped = nnkStmtList.newTree()

Please use Nim-ACL
Please use Nim-ACL
Please use Nim-ACL


static:
  when not defined SecondCompile:
    # md5sum: fc048d3bcc2d718febcd9f8cb55d7647  atcoder.tar.xz

    template getFileName():string = instantiationInfo().filename
    let fn = getFileName()
    block:
      let (output, ex) = gorgeEx("if [ -e ./atcoder ]; then exit 1; else exit 0; fi")
      # doAssert ex == 0, "atcoder directory already exisits"
    discard staticExec("echo \"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\" | base64 -d > atcoder.tar.xz && tar -Jxvf atcoder.tar.xz")
    let (output, ex) = gorgeEx("nim cpp -d:release -d:SecondCompile -d:danger --path:./ --opt:speed --multimethods:on --warning[SmallLshouldNotBeUsed]:off --checks:off -o:a.out " & fn)
    discard staticExec("rm -rf ./atcoder");doAssert ex == 0, output;quit(0)


when defined SecondCompile:
  const DO_CHECK = false;const DEBUG = false
else:
  const DO_CHECK = true;const DEBUG = true
const
  USE_DEFAULT_TABLE = true
  DO_TEST = false

# see https://github.com/zer0-star/Nim-ACL/tree/master/src/atcoder/extra/header/chaemon_header.nim
include atcoder/extra/header/chaemon_header


proc solve() =
  let T = nextInt()
  proc solve1() =
    var
      x1, y1 = nextInt()
      d1 = nextString()[0]
      x2, y2 = nextInt()
      d2 = nextString()[0]
      tx, ty: int
    proc swap_all() =
      swap x1, x2
      swap y1, y2
      swap d1, d2

    # x1, x2の位置が同じになる
    # RとUだけにする
    if d1 in ['L', 'R'] and d2 in ['L', 'R']:
      if y1 != y2 or d1 == d2:
        echo "No";return
      else:
        # d1 == 'R', d2 == 'L'にする
        if d1 == 'L':
          swap_all()
        doAssert d1 == 'R' and d2 == 'L'
        if x1 < x2:
          echo "Yes";return
        else:
          echo "No";return
    if d1 in ['U', 'D'] and d2 in ['U', 'D']:
      if x1 != x2 or d1 == d2:
        echo "No";return
      else:
        # d1 == 'U', d2 == 'D'にする
        if d1 == 'D':
          swap_all()
        doAssert d1 == 'U' and d2 == 'D'
        if y1 < y2:
          echo "Yes";return
        else:
          echo "No";return
    if d1 in ['U', 'D']: swap_all()
    doAssert d1 in ['L', 'R'] and d2 in ['U', 'D']
    if d1 == 'L':
      x1 *= -1;x2 *= -1
      d1 = 'R'
    if d2 == 'D':
      y1 *= -1;y2 *= -1
      d2 = 'U'
    doAssert d1 == 'R' and d2 == 'U'
    # (x1, y1): R
    # (x2, y2): U
    # (x2, y1)で会えるか?
    if x1 > x2 or y2 > y1:
      echo "No";return
    elif x2 - x1 != y1 - y2:
      echo "No";return
    else:
      echo "Yes";return
  for _ in T:
    solve1()
  discard

solve()

0