結果
問題 |
No.812 Change of Class
|
ユーザー |
![]() |
提出日時 | 2025-03-26 15:50:08 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,149 ms / 4,000 ms |
コード長 | 1,515 bytes |
コンパイル時間 | 185 ms |
コンパイル使用メモリ | 82,716 KB |
実行使用メモリ | 123,936 KB |
最終ジャッジ日時 | 2025-03-26 15:51:10 |
合計ジャッジ時間 | 22,145 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 60 |
ソースコード
import sys from collections import deque def main(): input = sys.stdin.read().split() ptr = 0 N = int(input[ptr]) ptr += 1 M = int(input[ptr]) ptr += 1 adj = [[] for _ in range(N+1)] for _ in range(M): p = int(input[ptr]) ptr += 1 q = int(input[ptr]) ptr += 1 adj[p].append(q) adj[q].append(p) Q = int(input[ptr]) ptr += 1 queries = [] for _ in range(Q): queries.append(int(input[ptr])) ptr += 1 for A in queries: if N == 1: print(0, 0) continue visited = [False] * (N + 1) visited[A] = True queue = deque() queue.append((A, 0)) component_size = 1 d_max = 0 while queue: node, dist = queue.popleft() if dist > d_max: d_max = dist for neighbor in adj[node]: if not visited[neighbor]: visited[neighbor] = True component_size += 1 queue.append((neighbor, dist + 1)) if component_size == 1: print(0, 0) else: if d_max == 0: days = 0 else: days = 0 current = 1 while current < d_max: days += 1 current *= 2 print(component_size - 1, days) if __name__ == "__main__": main()