Я думаю, что это можно решить таким образом, например:
Ввод: 24, 7, 12, 1986, 6, 99
Q1: Give me second and third from set {24,7,12,1986,6}
A1: second 24, third 12
Теперь из этого ответа мы знаем, что24 и 12 никогда не будут самыми тяжелыми.Таким образом, мы можем просто помнить, что idx {0,2} не будет принадлежать нашему ответу.Теперь давайте добавим idx 5, о котором мы ничего не знаем.
Q2: Give me second and third from set that includes our second from first answer {24,7,1986,6,99}
A2: second 99 third 24
Теперь у нас есть секунда, это наше новое значение, поэтому idx со значением 99 не может быть самым тяжелым.Такая же ситуация произошла бы, если бы второй из ответа 1 остался прежним.С другой стороны, если секунда станет третьей, мы уже знаем, что на idx 5 что-то более тяжелое, чем все раньше, и это одно.
В текущем состоянии у нас есть 3 индекса, которые наверняка не самые тяжелые :(idx 0) 24 (idx 2) 12 и (idx 5) 99.
Теперь давайте попросим некоторый набор с idx, у нас нет никакой информации, например, idx 1.
Q3: Give me second and third from set {24,12,1986,6,99}
A3: second 99, third 24
Этот ответ не зависит от того, что мы получили из ответа 2, поэтому мы знаем, что его нет в индексе 1. Остальная часть алгоритма - это тот же шаг вывода.
IE:
Мы не делаемзнать что-нибудь о idx 3.
Q4: Give me second and third from set {24,7,12,6,99}
A4: second 24 and third 12
Здесь значение Second изменилось, так как ранее было 99, что означает, что индекс 3 имеет значение, и это его.