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: b1178cea7cec8450dd1cc280393a40b4 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 N = nextInt() if N < 1200: echo "green" else: echo "difficult" solve()