結果
問題 |
No.2403 "Eight" Bridges of Königsberg
|
ユーザー |
![]() |
提出日時 | 2023-08-05 11:45:22 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 947 bytes |
コンパイル時間 | 323 ms |
コンパイル使用メモリ | 82,364 KB |
実行使用メモリ | 86,844 KB |
最終ジャッジ日時 | 2024-10-15 08:50:18 |
合計ジャッジ時間 | 5,073 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 10 WA * 21 |
ソースコード
# 頂点すべてに達するのではなく辺すべてに達する(使う) # まず多重辺は打ち消しあう分を消そう、いらないから # 自己ループも消そう、いらないから # それから、辺が何本の線になっているか # degreeをinward, outwardで数えるか # outward-inwardでプラスをすべて数えればそれが線の数 # 答えはそこから1を引けばいいか、やってみよう N, M = map(int, input().split()) edges = [set() for i in range(N+1)] for i in range(M): u, v = map(int, input().split()) if u == v: continue if u in edges[v]: edges[v].discard(u) else: edges[u].add(v) inward = [0]*(N+1) outward = [0]*(N+1) for i in range(1, N+1): outward[i] += len(edges[i]) for nxt in edges[i]: inward[nxt] += 1 count = 0 for i in range(1, N+1): count += max(0, outward[i]-inward[i]) ans = count-1 print(ans)