結果

問題 No.812 Change of Class
ユーザー 👑 obakyan
提出日時 2019-05-08 23:53:27
言語 Lua
(LuaJit 2.1.1734355927)
結果
AC  
実行時間 858 ms / 4,000 ms
コード長 851 bytes
コンパイル時間 112 ms
コンパイル使用メモリ 6,816 KB
実行使用メモリ 47,360 KB
最終ジャッジ日時 2024-06-12 21:07:22
合計ジャッジ時間 16,238 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 60
権限があれば一括ダウンロードができます

ソースコード

diff #

local ior = io.input()
local n, m = ior:read("*n", "*n")
local t = {}
for i = 1, n do t[i] = {} end
for i = 1, m do
  local a, b = ior:read("*n", "*n")
  t[a][b], t[b][a] = true, true
end
local map = {}
local q = ior:read("*n")
for i = 1, q do
  local fst = ior:read("*n")
  for j = 1, n do map[j] = -1 end
  map[fst] = 0
  local tasks = {fst}
  local tasknum = 1
  local done = 0
  local friendnum, day = 0, 0
  while(done < tasknum) do
    done = done + 1
    local curidx = tasks[done]
    for k, v in pairs(t[curidx]) do
      if(map[k] == -1) then
        map[k] = map[curidx] + 1
        friendnum, day = friendnum + 1, map[k]
        tasknum = tasknum + 1
        tasks[tasknum] = k
      end
    end
  end
  local i_d = 0
  local mult = 1
  while(mult < day) do
    i_d = i_d + 1
    mult = mult * 2
  end
  print(friendnum .. " " .. i_d)
end
0