我们先观察当存在 \(0\) 时会发生什么。那么此时 \(\min\) 一定为 \(0\),即如果使用一操作那么等价于求 \(\operatorname{mex}\),用二操作那么等价于求 \(-\operatorname{mex}\)。我们发现,如果序列中不存在 \(1\) 但是存在 \(0\) 的话,我们可以直接二分用操作 \(1\) 得出答案,原因是答案一定等于 \(1\)。但如果包含 \(1\) 但不包含 \(0\) 的话,那么就有 \(\min=1,\operatorname{mex}=0\),于是和还是 \(1\)。所以我们希望用 \(35-\log n=35-16=19\approx \log n\) 个 \(1\) 操作和一个 \(2\) 操作来区分 \(0\) 与 \(1\)。我们发现,如果我们能够求出一组只包括 \(0\) 或 \(1\) 我们也可以知道哪组是 \(0\) 哪组是 \(1\),用一个 \(2\) 操作即可。如果为 \(0\) 那么答案会是 \(-1\),如果为 \(1\) 那么答案是 \(1\)。
那么我们就希望将这个序列分成 \(\log n\) 组。我们发现可以考虑二进制分组,这样一定是满足两个元素至少一次不在一个组中,之后查询即可。