結果
| 問題 |
No.416 旅行会社
|
| ユーザー |
n_knuu
|
| 提出日時 | 2017-01-04 17:31:56 |
| 言語 | Nim (2.2.0) |
| 結果 |
AC
|
| 実行時間 | 368 ms / 4,000 ms |
| コード長 | 878 bytes |
| コンパイル時間 | 5,415 ms |
| コンパイル使用メモリ | 69,472 KB |
| 実行使用メモリ | 38,120 KB |
| 最終ジャッジ日時 | 2024-12-14 20:21:07 |
| 合計ジャッジ時間 | 8,879 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 21 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(13, 17) Warning: Deprecated since v0.20, use 'toHashSet'; toSet is deprecated [Deprecated]
ソースコード
import strutils, sequtils, sets, algorithm
let
t1 = stdin.readline.split.map(parseInt)
(N, M, Q) = (t1[0], t1[1], t1[2])
var edges, query = newSeq[(int, int)]()
for i in 0..<M:
let t = stdin.readline.split.mapIt(it.parseInt-1)
edges.add((t[0], t[1]))
for i in 0..<Q:
let t = stdin.readline.split.mapIt(it.parseInt-1)
query.add((t[0], t[1]))
let query_set = toSet(query)
var graph = newSeqWith(N, newSeq[int]())
for e in edges:
if not query_set.contains(e):
let (s, t) = e
graph[s].add(t)
graph[t].add(s)
var used = newSeq[int](N)
proc dfs(v, cnt: int) =
if used[v] != 0:
return
used[v] = cnt
for c in graph[v]:
dfs(c, cnt)
dfs(0, -1)
query.reverse
for i, q in query:
let (s, t) = q
graph[s].add(t)
graph[t].add(s)
if used[s] != 0 or used[t] != 0:
dfs(s, Q-i)
dfs(t, Q-i)
used[1..<N].mapIt(it.intToStr).join("\n").echo
n_knuu