結果

問題 No.2605 Pickup Parentheses
コンテスト
ユーザー 👑 seekworser
提出日時 2026-10-05 20:19:28
言語 Nim
(2.2.12 + ACL)
コンパイル:
nim --nimcache=~ --hints:off -o:a.out -d:release cpp _filename_
実行:
./a.out
結果
AC  
実行時間 153 ms / 2,000 ms
+ 994µs
コード長 30,108 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 6,277 ms
コンパイル使用メモリ 225,964 KB
実行使用メモリ 46,236 KB
最終ジャッジ日時 2026-10-05 20:19:42
合計ジャッジ時間 11,499 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 68
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

template originalSource() =
 # {.checks: off.}
 include cplib/tmpl/citrus
 import cplib/math/combination
 import cplib/modint/modint
 import cplib/convolution/convolution
 
 type mint = modint998244353_barrett
 
 var n, m = input(int)
 if n % 2 != 0: exit(print(0))
 var segment = newseq[int](0)
 for i in 0..<m:
     var x = -input(int) + input(int) + 1
     if x % 2 == 0: segment.add(x)
 m = segment.len
 
 var c = initCombination[mint](2*n + 1)
 var catalan = collect(newSeq):
     for i in 0..2*n:
         if i % 2 == 0: c.ncr(i, i//2) / (i//2+1)
         else: mint(0)
 if m == 0: exit(print(catalan[n].val))
 var dp = newSeq[seq[mint]](0)
 
 for i in 0..<m:
     dp.add(newSeqWith(segment[i]+1, mint(0)))
     dp[i][0] = 1
     dp[i][^1] = -catalan[segment[i]]
 while dp.len > 1:
     var dpn = newSeq[seq[mint]](0)
     for i in 0..<dp.len//2:
         dpn.add(convolution(dp[2*i], dp[2*i+1]))
     if dp.len%2 == 1: dpn.add(dp[^1])
     swap(dp, dpn)
 
 var ans = mint(0)
 for i in 0..<dp[0].len:
     ans += dp[0][i] * catalan[n-i]
 print(ans.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