結果

問題 No.2845 Birthday Pattern in Two Different Calendars
ユーザー E49869826E49869826
提出日時 2024-08-23 23:45:28
言語 Nim
(2.0.2)
結果
AC  
実行時間 65 ms / 2,000 ms
コード長 8,599 bytes
コンパイル時間 4,085 ms
コンパイル使用メモリ 98,944 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-08-23 23:45:36
合計ジャッジ時間 5,814 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,816 KB
testcase_01 AC 7 ms
6,940 KB
testcase_02 AC 13 ms
6,940 KB
testcase_03 AC 2 ms
6,940 KB
testcase_04 AC 12 ms
6,944 KB
testcase_05 AC 9 ms
6,940 KB
testcase_06 AC 2 ms
6,940 KB
testcase_07 AC 7 ms
6,944 KB
testcase_08 AC 4 ms
6,940 KB
testcase_09 AC 2 ms
6,940 KB
testcase_10 AC 1 ms
6,944 KB
testcase_11 AC 4 ms
6,944 KB
testcase_12 AC 12 ms
6,944 KB
testcase_13 AC 2 ms
6,940 KB
testcase_14 AC 1 ms
6,940 KB
testcase_15 AC 3 ms
6,940 KB
testcase_16 AC 3 ms
6,940 KB
testcase_17 AC 4 ms
6,940 KB
testcase_18 AC 7 ms
6,940 KB
testcase_19 AC 12 ms
6,944 KB
testcase_20 AC 6 ms
6,944 KB
testcase_21 AC 14 ms
6,944 KB
testcase_22 AC 65 ms
6,944 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
check is on
optimized for speed

ソースコード

diff #

# Please use Nim-ACL
import macros; macro ImportExpand(s:untyped):untyped = parseStmt(staticExec("echo " & $s[2] & " | base64 -d | xzcat"))
# const OPTIMIZE_SIZE = true
ImportExpand "e_lib/templates/prelude.nim" <=== "/Td6WFoAAATm1rRGAgAhARwAAAAQz1jM4AG2AM1dADuaCNQtYnSg9EGWFdHzgJ4ZEZPA2A4GC71uJBE1Q5DCmJ6ip+BHSeOQAxKLZNxc8uvrgoLZaEvkfszH6ztT7Cqw+jwCLVNdnRZ/o9+gCa9AuZUCsQ4v1tT4NKMRrzE/FkvGFODweh31CM40Dbck8Q+4kjr0K6GP8du1rARBMqUymwor117W4ZKywO7//4q3Bv0h2J6NQM80thqxqFGl8ClE2WagETBiKou1DlpVvHO5fv1Mjn1l8RNWhRCFV2rSKTSfdGoS/coONb2/AAAAAAAAUjvPkh7B5A8AAekBtwMAAF1/nU2xxGf7AgAAAAAEWVo="
ImportExpand "e_lib/templates/header.nim" <=== "/Td6WFoAAATm1rRGAgAhARwAAAAQz1jM4A03BGddADuaCNQtYnSg9EGWFdHzgJ4ZEZPA2A4GC71uJBE1Q5DCmJ6f3yWtfXn3fnQS4aijNu6l8Uo6ftl2FqcVWTxulBCVzbwZmthVa2BR2tn5B3n37+4XoWtM6D4AWOTIY8fndEh4DTiI1d2bb0AbFoKIPUEfsGCKt5Se4b5iay5XXGPOLEvuX61pve/ppfJWzxIbD/xRoA9dt5J5QgyvmlAsRX7wcLGoYj8cEf8MJI2oGJ0lPhBOcbjlVWQaeq1WS7Qi1SfKV7Q1dxhbVJnkD3mzqjz75Xi6H+AL4JttO40lrn+P3N+HAVxBe+tuL61ohP2l2nlI1aCt4onIeKVet7HCeEOFqHq6plGJdwWahzJcva3UmaY3L+iSsgnOk+X7NUm2aQyejJnsoNKsYli6Uq17mRdO+rE+1nfs3wpIFTfv3SdX6/4KmPZYDfk2fwRfUyhnLFhRRBMQ8mpZxk7XBca+wmXvlUgGlw0729ifiZ4EKu0GqKIoobTDMZ2fqFsUQf5sDruni9SG+UmqSZroT4L6DNvcgJbdoFGtrBZ/YC3O/ffSQUFnW/5+4dGZkvkZrKbeg47wIhwyJiI+tmDrym/Q3i09cHUuU1QhMAqrtoMfW6RwYJct97lxl141J4Ln5sg0kf7WfkQqaSolWN+v5dboWW8xZOZmcmg14sRqyZm1X4JJaZfNgujIza8NtV2rqDGjijnhVVKwFM0mNdgm5cxy+8KZttjd16BwPXFmLeyHQNLGAYt8/VPGtjhiV+vPwSAGTtEYXq2wzVYZhdRnt/8qbDgti4eLAc3gxDC0ATZ51XDHERT7lgFpzg3bTioJhH18tIh5/CV3VpNPRDcVgjfh9Yijzdjf3CsAqkkrVaGiHJsISriPCFBuE8JjPg1VqbfAQfu4MmRX5NzJc8bLg2CJNudqvkTzrSQR34GYmGltrwNyIcGSrHBPGJy1B3Yy2NoedVr/s858o8V88fBZooC0RXsmKmr6vQkzXXOY9jLmU3pj9SMQ1Hs0egv8M+CPdgtiuEDVwtZ2vekcUXeAQyUdV+SiH48YR8+rXajEy/rfLdriDfiacCS9Zlry3ImdjOtggQUG4bDgqry+twt7+EiPZlLd3bKMqqk9PU+Df3d5sWNkzVwljUpziUVI3l72/v9zOfj22rAvDaUJgSqDh1RHN8cCXAJwr3/YY4Yx75WsRUkWqygzX4cg+uc86G6PZ0UZaW3oUMhpAJcMHVchreNrI9sE/w979ZRapbIO7liNOGCKGlL1AFgOhgd9Lx/5FbUV/IuDdjMxKD/nvskiXC8cV1Hh7wNdokaGSDNIqKcr4LDNOsqtfMRNzh/PKFZ8jrRO6oyQ8qcGJauGS/S93wuwoFO3GxyI2PeesESKO6PFp0iIb8o8MOGIyPXmeuZ/3W/OpRESdCS0Gcqcao9dLIFGoQCBqMM+iudeS1ZtGdveWfgtHG2fy4ho0IPt9cSwiC2FhwFVqD4rc0mzXCSypw90fONMkXZe/8eUAABFDYk4U9GKwgABgwm4GgAACZAWn7HEZ/sCAAAAAARZWg=="
ImportExpand "atcoder/modint.nim" <=== "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"

const MOD = 1
useStaticModInt(mint, MOD)
const YES = "Yes"
const NO = "No"
proc `$`(a:bool):string = return if a: YES else: NO

# no echo
proc solve(K,M,N:int):void =
  if M == 1: stdout.writeLine(NO); return
  let M0 = M-1
  let g = gcd(M0,K)
  let te2 = (K div g) shr 1
  if g*te2 < N: stdout.writeLine(NO); return
  var re0 = newSeqUninitialized[int](N)
  var i0 = 0
  block bl1:
    for i in 0..<g:
      var te3 = i
      for j in 0..<te2:
        re0[i0] = te3+1
        i0.inc()
        if i0 == N: break bl1
        for _ in 0..<2:
          te3 += M0
          if te3 >= K: te3 -= K
  stdout.writeLine(YES)
  stdout.writeLine(re0.join(" "))
  return

proc main():void =
  # Failed to predict input format
  let T = nextInt()
  for i in 0..<T:
    let K, M, N = nextInt()
    solve(K,M,N)
  return

main()
0