結果
| 問題 |
No.2403 "Eight" Bridges of Königsberg
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 14:39:10 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,384 bytes |
| コンパイル時間 | 299 ms |
| コンパイル使用メモリ | 82,248 KB |
| 実行使用メモリ | 124,144 KB |
| 最終ジャッジ日時 | 2025-06-12 14:39:14 |
| 合計ジャッジ時間 | 3,625 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 21 WA * 10 |
ソースコード
def main():
import sys
input = sys.stdin.read().split()
ptr = 0
N = int(input[ptr])
ptr += 1
M = int(input[ptr])
ptr += 1
d_out = [0] * (N + 1)
d_in = [0] * (N + 1)
for _ in range(M):
U = int(input[ptr])
ptr += 1
V = int(input[ptr])
ptr += 1
d_out[U] += 1
d_in[V] += 1
delta = []
sum_delta = 0
sum_abs = 0
for u in range(1, N + 1):
d = d_out[u] - d_in[u]
delta.append(d)
sum_delta += d
sum_abs += abs(d)
if sum_delta != 0:
print(-1)
return
if sum_abs == 0:
print(0)
return
elif sum_abs == 2:
# 检查是否有恰好两个顶点的delta为+1和-1
count_plus = 0
count_minus = 0
for d in delta:
if d == 1:
count_plus += 1
elif d == -1:
count_minus += 1
elif d != 0:
# 存在其他值,无法满足条件
print(0)
return
if count_plus == 1 and count_minus == 1:
print(0)
else:
print(-1)
return
else:
if sum_abs % 2 != 0:
print(-1)
return
else:
add = (sum_abs - 2) // 2
print(add)
return
if __name__ == "__main__":
main()
gew1fw