結果
| 問題 | No.3580 二成分の和 |
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2026-07-03 22:07:08 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 64 ms / 2,000 ms |
| コード長 | 1,088 bytes |
| 記録 | |
| コンパイル時間 | 262 ms |
| コンパイル使用メモリ | 85,632 KB |
| 実行使用メモリ | 81,280 KB |
| 最終ジャッジ日時 | 2026-07-03 22:08:18 |
| 合計ジャッジ時間 | 2,797 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 30 |
ソースコード
def main():
n, m, b = list(map(int, input().split()))
node = [[] for _ in range(n)]
X = [-1] * n
E = [list(map(int, input().split())) for _ in range(m)]
for i in range(m):
E[i][0] -= 1
E[i][1] -= 1
node = [[] for _ in range(n)]
for u, v, c in E:
node[u].append((v, c))
node[v].append((u, c))
for i in range(n):
if X[i] != -1: continue
for j in range(b):
X[i] = j
C = set([i])
S = [i]
f = 1
while S and f:
now = S.pop()
for nxt, c in node[now]:
if nxt in C:
if (X[now] + X[nxt]) % b != c:
f = 0
break
else:
X[nxt] = (c-X[now]) % b
S.append(nxt)
C.add(nxt)
if f:
break
else:
return []
return X
Ans = main()
if not Ans:
print("No")
else:
print("Yes")
print(*Ans)
kidodesu