結果

問題 No.812 Change of Class
ユーザー neko_the_shadow
提出日時 2019-04-15 17:34:38
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
TLE  
実行時間 -
コード長 904 bytes
コンパイル時間 824 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 51,580 KB
最終ジャッジ日時 2024-06-12 20:47:06
合計ジャッジ時間 11,383 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 3
other TLE * 1 -- * 59
権限があれば一括ダウンロードができます

ソースコード

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