結果
| 問題 |
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 |
ソースコード
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)))
neko_the_shadow