結果
| 問題 | No.3552 Triangular Coloring |
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2026-05-04 23:32:50 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,260 bytes |
| 記録 | |
| コンパイル時間 | 143 ms |
| コンパイル使用メモリ | 85,248 KB |
| 実行使用メモリ | 142,080 KB |
| 最終ジャッジ日時 | 2026-05-22 21:48:17 |
| 合計ジャッジ時間 | 8,256 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge3_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 2 RE * 15 |
ソースコード
from collections import deque
INF = 10**18
N, M = [int(s) for s in input().split()]
graph = [[] for _ in range(N)]
for _ in range(M):
u, v = [int(s) - 1 for s in input().split()]
graph[u].append(v)
graph[v].append(u)
def bfs(start):
dist = [INF] * N
dist[start] = 0
que = deque([start])
while que:
v = que.popleft()
for to in graph[v]:
if dist[to] < INF:
continue
dist[to] = dist[v] + 1
que.append(to)
return dist
dist = bfs(0)
g = []
for v in range(N):
if dist[v] == 1:
g.append(v)
x = 0
y = g[0]
z = None
for _z in g[1:]:
if _z in graph[y]:
z = _z
break
dist_x = bfs(x)
dist_y = bfs(y)
dist_z = bfs(z)
max_dist = [max(dist_x[i], dist_y[i], dist_z[i]) for i in range(N)]
group = [[] for _ in range(N)]
for i in range(N):
if i in (x, y, z):
continue
group[max_dist[i]].append(i)
answers = [None] * N
answers[x] = 1
answers[y] = 2
answers[z] = 3
for d in range(N):
for v in group[d]:
s = {1, 2, 3, 4}
for to in graph[v]:
if answers[to] is None:
continue
s.discard(answers[to])
answers[v] = s.pop()
print("Yes")
print(*answers)