結果
問題 |
No.812 Change of Class
|
ユーザー |
![]() |
提出日時 | 2020-02-29 21:14:49 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 739 ms / 4,000 ms |
コード長 | 922 bytes |
コンパイル時間 | 324 ms |
コンパイル使用メモリ | 82,592 KB |
実行使用メモリ | 122,480 KB |
最終ジャッジ日時 | 2024-06-12 22:06:33 |
合計ジャッジ時間 | 17,771 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 60 |
ソースコード
#!/usr/bin/env python3 # %% import sys read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines from collections import deque # %% N, M = map(int, readline().split()) PQ = [tuple(map(int, readline().split())) for _ in range(M)] Q = int(readline()) A = tuple(map(int, read().split())) # %% G = [[] for _ in range(N + 1)] for p, q in PQ: G[p].append(q) G[q].append(p) # %% def bfs(root): dist = [-1] * (N + 1) q = deque() q.append(root) dist[root] = 0 while q: v = q.popleft() dw = dist[v] + 1 for w in G[v]: if dist[w] == -1: dist[w] = dw q.append(w) return dist # %% for a in A: dist = bfs(a) max_d = max(dist) if max_d == 0: print(0, 0) continue n = (max_d - 1).bit_length() friend = sum(x > 0 for x in dist) print(friend, n)