結果

問題 No.812 Change of Class
ユーザー neko_the_shadow
提出日時 2019-04-15 17:35:14
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 904 bytes
コンパイル時間 194 ms
コンパイル使用メモリ 82,560 KB
実行使用メモリ 543,192 KB
最終ジャッジ日時 2024-06-12 21:06:48
合計ジャッジ時間 17,465 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 3
other AC * 3 TLE * 2 MLE * 1 -- * 54
権限があれば一括ダウンロードができます

ソースコード

diff #

import collections, heapq, math

n, m = map(int, input().split())

friend = collections.defaultdict(list)
for _ in range(m):
    p, q = map(lambda s : int(s) - 1, input().split())
    friend[p].append(q)
    friend[q].append(p)

q = int(input())
alist = [int(input()) - 1 for _ in range(q)]
for a in alist:
    # DIJKSTRA 
    d = [float('inf')] * n
    d[a] = 0
    pq = []
    for i in range(n):
        heapq.heappush(pq, (d[i], i))
    
    while pq:
        _, x = heapq.heappop(pq)
        for y in friend[x]:
            if d[x] + 1 < d[y]:
                d[y] = d[x] + 1
                heapq.heappush(pq, (d[y], y))

    b = 0 # 友達の数
    c = 0 # もっとも遠い友達までのスコア。
    for v in d:
        if v != 0 and v != float('inf'):
            b += 1
            c = max(c, v)
    
    if c == 0:
        print(b, c)
    else:
        print(b, math.ceil(math.log2(c)))
0