結果

問題 No.2085 Directed Complete Graph
ユーザー 👑 obakyanobakyan
提出日時 2022-09-27 22:49:13
言語 Lua
(LuaJit 2.1.1696795921)
結果
AC  
実行時間 142 ms / 2,000 ms
コード長 974 bytes
コンパイル時間 171 ms
コンパイル使用メモリ 6,940 KB
実行使用メモリ 25,220 KB
平均クエリ数 2533.76
最終ジャッジ日時 2024-06-02 01:18:55
合計ジャッジ時間 3,135 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 19 ms
25,220 KB
testcase_01 AC 18 ms
24,836 KB
testcase_02 AC 132 ms
25,196 KB
testcase_03 AC 128 ms
24,940 KB
testcase_04 AC 142 ms
24,556 KB
testcase_05 AC 72 ms
25,196 KB
testcase_06 AC 76 ms
24,556 KB
testcase_07 AC 136 ms
24,556 KB
testcase_08 AC 103 ms
24,812 KB
testcase_09 AC 131 ms
24,812 KB
testcase_10 AC 139 ms
24,940 KB
testcase_11 AC 142 ms
24,428 KB
testcase_12 AC 138 ms
25,196 KB
testcase_13 AC 137 ms
24,556 KB
testcase_14 AC 139 ms
24,940 KB
testcase_15 AC 18 ms
24,964 KB
testcase_16 AC 18 ms
25,220 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

local gc = 0
local t = {}
local function query(a, b)
  io.write("? " .. a .. " " .. b .. "\n")
  io.flush()
  -- do
    -- gc = gc + 1
    -- if b == t[1] then return false end
    -- if a == t[#t] then return false end
    -- return false
  -- end
  local ret = io.read("*l")
  return tonumber(ret) == 1
end

local n = io.read("*n", "*l")

local f = query(1, 2)
if f then
  table.insert(t, 1)
  table.insert(t, 2)
else
  table.insert(t, 2)
  table.insert(t, 1)
end
for i = 3, n do
  if false and query(i, t[1]) then
    table.insert(t, 1, i)
  elseif false and query(t[#t], i) then
    table.insert(t, i)
  else
    local left, right = 0, #t + 1
    while 1 < right - left do
      local mid = math.floor((left + right) / 2)
      if query(i, t[mid]) then
        right = mid
      else
        left = mid
      end
    end
    table.insert(t, right, i)
  end
end
-- print("GC", gc)
io.write("!\n")
io.write(n - 1 .. "\n")
io.write(table.concat(t, " ") .. "\n")
io.flush()
0