結果
| 問題 |
No.850 企業コンテスト2位
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2020-11-30 22:36:46 |
| 言語 | Lua (LuaJit 2.1.1734355927) |
| 結果 |
AC
|
| 実行時間 | 35 ms / 2,000 ms |
| コード長 | 918 bytes |
| コンパイル時間 | 249 ms |
| コンパイル使用メモリ | 7,072 KB |
| 実行使用メモリ | 25,220 KB |
| 平均クエリ数 | 200.11 |
| 最終ジャッジ日時 | 2024-07-17 07:36:18 |
| 合計ジャッジ時間 | 3,031 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 27 |
ソースコード
local function query(a, b)
io.write("? " .. a .. " " .. b .. "\n")
io.flush()
local ret = io.read("*l")
return tonumber(ret)
end
local function ans(a)
io.write("! " .. a .. "\n")
io.flush()
end
local n = io.read()
n = tonumber(n)
local t = {}
local d = {}
d[1] = {}
for i = 1, n do
t[i] = {}
d[1][i] = i
end
local stage = 1
while 1 < #d[stage] do
d[stage + 1] = {}
for i = 1, #d[stage], 2 do
if i ~= #d[stage] then
local v1, v2 = d[stage][i], d[stage][i + 1]
local ret = query(v1, v2)
table.insert(d[stage + 1], ret)
if v1 == ret then
table.insert(t[v1], v2)
else
table.insert(t[v2], v1)
end
else
table.insert(d[stage + 1], d[stage][i])
end
end
stage = stage + 1
end
local top = d[stage][1]
local second = t[top][1]
for i = 2, #t[top] do
local v = t[top][i]
local ret = query(second, v)
second = ret
end
ans(second)