結果
| 問題 |
No.812 Change of Class
|
| コンテスト | |
| ユーザー |
tpyneriver
|
| 提出日時 | 2019-04-12 22:19:58 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,272 ms / 4,000 ms |
| コード長 | 791 bytes |
| コンパイル時間 | 376 ms |
| コンパイル使用メモリ | 82,464 KB |
| 実行使用メモリ | 183,516 KB |
| 最終ジャッジ日時 | 2024-06-12 19:16:32 |
| 合計ジャッジ時間 | 28,157 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 60 |
ソースコード
from collections import deque
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
Edge = [[]for _ in range(N)]
for _ in range(M):
a, b = map(int, input().split())
Edge[a-1].append(b-1)
Edge[b-1].append(a-1)
Q = int(input())
ans = [None]*Q
for q in range(Q):
st = int(input())
st -= 1
Q = deque()
Q.append(st)
visited = set([st])
dist = [-1]*N
dist[st] = 0
md = 0
while Q:
s = Q.pop()
for v in Edge[s]:
if v not in visited:
visited.add(v)
if dist[v] == -1:
dist[v] = dist[s] + 1
md = max(md, dist[v])
Q.appendleft(v)
ans[q] = (len(visited) - 1,(md-1).bit_length() if md else 0)
for a in ans:
print(*a)
tpyneriver