結果

問題 No.2564 衝突予測
ユーザー chaemon
提出日時 2023-12-02 15:48:08
言語 Nim
(2.2.0)
結果
AC  
実行時間 274 ms / 2,000 ms
コード長 16,184 bytes
コンパイル時間 4,359 ms
コンパイル使用メモリ 94,336 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-09-26 19:19:08
合計ジャッジ時間 7,942 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 9
権限があれば一括ダウンロードができます

ソースコード

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")<hide>
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
# RU
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()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0