結果
| 問題 |
No.583 鉄道同好会
|
| コンテスト | |
| ユーザー |
KoshStorm
|
| 提出日時 | 2017-10-28 14:26:12 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 925 bytes |
| コンパイル時間 | 101 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 13,056 KB |
| 最終ジャッジ日時 | 2024-11-22 03:19:58 |
| 合計ジャッジ時間 | 3,262 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 14 WA * 1 RE * 1 |
ソースコード
#C問題:鉄道同好会
N,M = map(int,input().split(" "))
array = [[False]*N for i in range(N)]
end = 0
count = 0
end_i = []
val = []
def search (i,j):
global array
global count
global end_i
count += 1
array[i][j] = False
array[j][i] = False
for k in range(N):
if array[j][k]:
tmp = search(j,k)
if end_i[1] == tmp or i == tmp:
return end_i[1]
else:
return tmp
elif k == N-1:
return j
for i in range(M):
Sa,Sb = map(int,input().split(" "))
array[Sa][Sb] = True
array[Sb][Sa] = True
#オイラーグラフか半オイラーグラフかの判定
for i in range(N):
num = array[i].count(True)
if num%2 == 1:
end += 1
end_i.append(i)
if end >= 3:
print("NO")
exit(0)
if end == 0:
end_i.append(Sa)
end_i.append(Sa)
for i in range(N):
if array[end_i[0]][i]:
val.append(end_i[1]==search(end_i[0],i))
if all(val) and count == M:
print("YES")
else:
print("NO")
KoshStorm