CF1090F How to Learn You Score
CF1090F How to Learn You Score
codeforces:CF1090F How to Learn You Score
Solution
一道有趣的交互 + 构造。2600*。
观察 \(n \ge 5\),我们不妨对 \(5\) 个数的情况进行分析。
如果知道 \(5\) 个数的和,再减去另外 \(4\) 个,就可以得到单个数的值。
那么不妨先来考虑四个数的和。
假设排序之后的四个数分别为 \(a, b, c, d\)。
对这个四元组进行询问的方式有四种:\((a, b, c), (a, b, d), (a,c, d), (b, c, d)\),分别对应查询结果 \(a + c, a + d, a + d, b + d\)。
发现查询结果中 \(a + c \le a + d \le b + d\),且 \((a + c) + (b + d)\) 恰能询问出四个数的和。
五个数的和,只需求五遍四元组的和再除以 \(5\) 即可,这样在 \(10\) 次就能搞定原本需要 \(20\) 次的工作。
对于 \(n > 5\) 的情况,想到用四元组的和减掉已知的三个数,随便拿前 \(5\) 个数中的三个拿来凑就可以了。

浙公网安备 33010602011771号