結果
| 問題 |
No.483 マッチ並べ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-02-14 12:57:30 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 36 ms / 2,000 ms |
| コード長 | 1,162 bytes |
| コンパイル時間 | 108 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-12-29 21:20:33 |
| 合計ジャッジ時間 | 3,753 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 53 |
ソースコード
import sys
def solve():
N = int(input())
c2n = dict()
node_n = 0
Adj = []
for i in range(N):
r0, c0, r1, c1 = map(int, input().split())
if (r0, c0) not in c2n:
c2n[r0, c0] = node_n
node_n += 1
Adj.append([])
if (r1, c1) not in c2n:
c2n[r1, c1] = node_n
node_n += 1
Adj.append([])
u = c2n[r0, c0]
v = c2n[r1, c1]
Adj[u].append(v)
Adj[v].append(u)
remove_deg1(node_n, Adj)
for u in range(node_n):
if len(Adj[u]) > 2:
print('NO')
break
else:
print('YES')
def remove_deg1(node_n, Adj):
for u in range(node_n):
if len(Adj[u]) == 1:
v = Adj[u].pop()
Adj[v].remove(u)
while len(Adj[v]) == 1:
u = v
v = Adj[v].pop()
Adj[v].remove(u)
return None
def debug(x, table):
for name, val in table.items():
if x is val:
print('DEBUG:{} -> {}'.format(name, val), file=sys.stderr)
return None
if __name__ == '__main__':
solve()