結果

問題 No.3716 Keep it Integer
コンテスト
ユーザー 👑 seekworser
提出日時 2026-09-20 10:57:25
言語 Nim
(2.2.10 + ACL)
コンパイル:
nim --nimcache=~ --hints:off -o:a.out -d:release cpp _filename_
実行:
./a.out
結果
AC  
実行時間 38 ms / 2,000 ms
+ 259µs
コード長 11,362 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 4,134 ms
コンパイル使用メモリ 95,876 KB
実行使用メモリ 15,548 KB
最終ジャッジ日時 2026-09-20 10:57:36
合計ジャッジ時間 9,085 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 50
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

template originalSource() =
 {.checks: off.}
 include cplib/tmpl/citrus
 import cplib/modint/modint
 type mint = modint998244353_barrett
 
 var n, x = input(int)
 var a = @[x] & newSeqWith(n, input(int))
 var nx = newSeqWith(n+1, n+1)
 block:
     var c = n+1
     for i in countdown(n, 0):
         nx[i] = c
         if a[i] != 1: c = i
 var dp = newSeqWith(a.len+1, mint(0))
 dp[0] = 1
 for i in 0..n:
     var x = a[i]
     var pos = i
     while pos < a.len:
         pos = nx[pos]
         if pos == n+1 or x % a[pos] != 0: break
         x //= a[pos]
     if pos+1 < dp.len: dp[pos+1] -= dp[i]
     if i != 0: dp[i+1] += dp[i]
     dp[i+1] += dp[i]
 print(dp[^1].val)
 
 



# https://github.com/kemuniku/cplib
import macros;macro cplibRestore(s:static[string]):untyped = parseStmt(s)
cplibRestore("import base64\x0Amacro cplibUnpackSource(): untyped =\x0A    # \xE3\x82\xB3\xE3\x83\xB3\xE3\x83\x91\xE3\x82\xA4\xE3\x83\xAB\xE6\x99\x82\xE3\x81\xAB\xE5\xB1\x95\xE9\x96\x8B\xE6\xB8\x88\xE3\x81\xBF\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE5\xBE\xA9\xE5\x85\x83\xE3\x81\x99\xE3\x82\x8B\xE3\x80\x82\x0A    let z = decode(\"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\")\x0A    var s = \"\"\x0A    var i = 0\x0A    while i < z.len:\x0A        let f = ord(z[i])\x0A        inc i\x0A        for b in 0..<8:\x0A            if i >= z.len: break\x0A            if (f and (1 shl b)) == 0:\x0A                s.add(z[i])\x0A                inc i\x0A            else:\x0A                let d = ord(z[i])*256+ord(z[i+1])\x0A                let n = ord(z[i+2])+3\x0A                i += 3\x0A                for j in 0..<n: s.add(s[s.len-d])\x0A    result = parseStmt(s)\x0AcplibUnpackSource()\x0A")
0