CF1806C Sequence Master

题目描述

对于某个正整数 $m$,YunQian 认为一个长度为 $2m$ 的整数数组 $q$(元素可以为负数)是“好”的,当且仅当对于 $q$ 的每一个长度为 $m$ 的子序列,其 $m$ 个元素的乘积等于剩下 $m$ 个元素的和。形式化地,设 $U=\{1,2,\ldots,2m\}$。对于所有满足 $|S|=m$ 的 $S \subseteq U$,都有 $\prod\limits_{i \in S} q_i = \sum\limits_{i \in U \setminus S} q_i$。 定义两个长度为 $k$ 的数组 $a$ 和 $b$ 之间的距离为 $\sum\limits_{i=1}^k|a_i-b_i|$。 给定正整数 $n$ 和一个长度为 $2n$ 的整数数组 $p$。 请你求出所有长度为 $2n$ 的“好”数组 $q$ 中,与 $p$ 的距离的最小值。可以证明,对于所有正整数 $n$,至少存在一个“好”数组。注意,你不需要构造出达到最小距离的 $q$。

输入格式

第一行包含一个整数 $t$($1\le t\le 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1\le n\le 2\cdot10^5$)。 每个测试用例的第二行包含 $2n$ 个整数 $p_1, p_2, \ldots, p_{2n}$($|p_i| \le 10^9$)。 保证所有测试用例中 $n$ 的总和不超过 $2\cdot 10^5$。

输出格式

对于每个测试用例,输出 $p$ 与某个“好”数组 $q$ 的最小距离。

说明/提示

在第一个测试用例中,最优的做法是令 $q=[6,6]$。 在第二个测试用例中,最优的做法是令 $q=[2,2,2,2]$。 由 ChatGPT 4.1 翻译