結果

問題 No.2558 中国剰余定理
ユーザー chaemon
提出日時 2023-12-02 14:32:15
言語 Nim
(2.2.0)
結果
AC  
実行時間 95 ms / 2,000 ms
コード長 14,867 bytes
コンパイル時間 4,401 ms
コンパイル使用メモリ 93,696 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-09-26 16:45:50
合計ジャッジ時間 5,746 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 29
権限があれば一括ダウンロードができます

ソースコード

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: 004fb116feb693202d320b197beb6a4d 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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
        /ERSggdEwVcKBWAL2+Ce9+3fVXRoQV+FkLtQ
        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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 A, B, a, b = nextInt()
var x = 0
while true:
if x mod A == a and x mod B == b:
echo x;return
x.inc
solve()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0