結果
問題 |
No.583 鉄道同好会
|
ユーザー |
![]() |
提出日時 | 2020-02-28 11:45:27 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 157 ms / 2,000 ms |
コード長 | 778 bytes |
コンパイル時間 | 196 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 31,088 KB |
最終ジャッジ日時 | 2024-10-13 16:23:49 |
合計ジャッジ時間 | 1,878 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 |
ソースコード
#!/usr/bin/env python3 # %% import sys read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines # %% N, M = map(int, readline().split()) m = map(int, read().split()) AB = zip(m, m) # %% G = [[] for _ in range(N)] for a, b in AB: G[a].append(b) G[b].append(a) # %% deg = [len(x) for x in G] comp = [0] * N next_c = 1 for v in range(N): if deg[v] == 0 or comp[v]: continue comp[v] = next_c next_c += 1 stack = [v] while stack: v = stack.pop() for w in G[v]: if not comp[w]: comp[w] = comp[v] stack.append(w) # %% odd_pt_cnt = sum(x & 1 for x in deg) is_euler = odd_pt_cnt <= 2 and max(comp) <= 1 print('YES' if is_euler else 'NO')