結果

問題 No.3719 Share the Tree
コンテスト
ユーザー 👑 seekworser
提出日時 2026-09-18 22:51:09
言語 Nim
(2.2.10 + ACL)
コンパイル:
nim --nimcache=~ --hints:off -o:a.out -d:release cpp _filename_
実行:
./a.out
結果
AC  
実行時間 105 ms / 2,000 ms
+ 1µs
コード長 11,907 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 4,470 ms
コンパイル使用メモリ 98,048 KB
実行使用メモリ 6,528 KB
平均クエリ数 2.00
最終ジャッジ日時 2026-09-18 22:51:26
合計ジャッジ時間 8,665 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

template originalSource() =
 # {.checks: off.}
 include cplib/tmpl/citrus
 import cplib/graph/graph
 import cplib/tree/prufer
 
 proc prufer_encode(g: UnWeightedUnDirectedGraph): seq[int] =
     var ans = newSeq[int]()
     var n = g.len
     var d = newSeqWith(n, 0)
     for u in 0..<n:
         for v in g[u]:
             if v > u: continue
             d[u] += 1
             d[v] += 1
     var hq = initHeapQueue[int]()
     var alr = newSeqWith(n, false)
     for i in 0..<n:
         if d[i] == 1:
             hq.push(i)
             alr[i] = true
     for i in 0..<n-2:
         var u = hq.pop
         for v in g[u]:
             if alr[v]: continue
             ans.add(v)
             d[v] -= 1
             if d[v] == 1:
                 alr[v] = true
                 hq.push(v)
     return ans
 
 var s = input(string)
 var n = input(int)
 print(n - 2)
 stdout.flushFile
 if s == "Alice":
     var g = initUnWeightedUnDirectedGraph(n)
     for i in 0..<n-1:
         var u, v = input(int) - 1
         g.add_edge(u, v)
     var a = prufer_encode(g)
     print(a.mapIt(it+1))
     stdout.flushFile
 else:
     var a = input(int, n-2)
     var g = prufer_decode(a.mapit(it-1))
     for u in 0..<n:
         for v in g[u]:
             if u < v:
                 print(u+1, v+1)
                 stdout.flushFile
 



# 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