結果
問題 | No.1103 Directed Length Sum |
ユーザー | yuly3 |
提出日時 | 2020-07-28 00:26:08 |
言語 | Nim (2.0.2) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,023 bytes |
コンパイル時間 | 1,442 ms |
コンパイル使用メモリ | 66,816 KB |
最終ジャッジ日時 | 2024-06-28 20:25:45 |
合計ジャッジ時間 | 3,111 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
/home/judge/data/code/Main.nim(19, 38) Error: type mismatch: got 'seq[int]' for 'map(split(readLine(stdin), {' ', '\t', '\v', '\r', '\n', '\f'}, -1), parseInt)' but expected 'tuple'
ソースコード
import strutils, sequtils, math, sets const MOD = 10 ^ 9 + 7 var graph: seq[seq[int]] r: HashSet[int] dp: array[1000010, int] depth: array[1000010, int] proc solve() = let N = stdin.readLine.parseInt graph = newSeqWith(N, newSeq[int]()) r = initHashSet[int]() for i in 0..<N: r.incl(i) var a, b: int for _ in 0..<N - 1: (a, b) = stdin.readLine.split.map(parseInt) a -= 1; b -= 1 graph[a].add(b) r.excl(b) proc dfs(cur: int, parent: int): int = var dp_cum = 0 if parent != -1: depth[cur] = depth[parent] + 1 for child in graph[cur]: dp_cum += dfs(child, cur) dp[cur] = dp_cum + 1 return dp[cur] let root = r.pop() _ = dfs(root, -1) var ans = 0 for parent in 0..<N: for child in graph[parent]: ans += (depth[parent] + 1) * dp[child] ans = ans mod MOD echo ans when is_main_module: solve()