四大文化赛道完整展开
03-execution/run-001/source-snapshot/main.py
main.py
站内文件视图直接读取仓库内容,Markdown 使用文档排版渲染,其余文本文件保持原始排版,方便校对训练证据链。
文件类型.py
10-cases/s2-jh-03-propagation-sim/03-execution/run-001/source-snapshot/main.py
from collections import deque
import sys
def solve(data: str) -> str:
tokens = list(map(int, data.split()))
if not tokens:
return ""
it = iter(tokens)
n = next(it)
m = next(it)
start = next(it)
graph = [[] for _ in range(n + 1)]
for _ in range(m):
u = next(it)
v = next(it)
graph[u].append(v)
graph[v].append(u)
days = [-1] * (n + 1)
days[start] = 0
queue = deque([start])
while queue:
node = queue.popleft()
for nxt in graph[node]:
if days[nxt] != -1:
continue
days[nxt] = days[node] + 1
queue.append(nxt)
reach = days[1:]
total_days = max(reach)
unreached = sum(1 for value in reach if value == -1)
return "\n".join(
[
f"total_days={total_days}",
"days=" + " ".join(map(str, reach)),
f"unreached={unreached}",
]
)
if __name__ == "__main__":
sys.stdout.write(solve(sys.stdin.read()).strip())
sys.stdout.write("\n")