CF1605E Array Equalizer

题目描述

## 题面描述 Jeevan 有两个长度为 $n$ 的数组:$a$ 和 $b$。他有以下两种操作: + 选择一个 $k$($1 \le k \le n$),对所有满足 $1 \leq i \leq n$ 并且 $1 \le i \times k \le n$ 的 $i$,令 $a_{ik}=a_{ik} + 1$。 + 选择一个 $k$($1 \le k \le n$),对所有满足 $1 \leq i \leq n$ 并且 $1 \le i \times k \le n$ 的 $i$,令 $a_{ik}=a_{ik} - 1$。 不幸的是,他忘记了 $b_1$,因此他会向你提问 $q$ 次,每次给出一个 $x$,表示: - 如果 $b_1 = x$,那么把 $a$ 变为 $b$ 至少需要几次操作?

输入格式

第一行一个整数 $n$($1 \le n \le 2 \cdot 10^5$),表示 $a$ 和 $b$ 的长度。 第二行 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^6$)。 第三行 $n$ 个整数 $b_1, b_2, \dots, b_n$($1 \le b_i \le 10^6$)。保证 $b_1 = -1$,表示 $b_1$ 是未知的。 第四行一个整数 $q$($1 \le q \le 2 \cdot 10^5$),表示询问次数。 接下来 $q$ 行,每行一个整数 $x$($1 \le x \le 10^6$)。

输出格式

输出 $q$ 行 $q$ 个整数,表示每个询问的答案。

说明/提示

Consider the first test case. - $ b_1 = 1 $ : We need to convert $ [3, 7] \rightarrow [1, 5] $ . We can perform the following operations: $ [3, 7] $ $ \xrightarrow[\text{decrease}]{\text{i = 1}} $ $ [2, 6] $ $ \xrightarrow[\text{decrease}]{\text{i = 1}} $ $ [1, 5] $ Hence the answer is $ 2 $ . - $ b_1 = 4 $ : We need to convert $ [3, 7] \rightarrow [4, 5] $ . We can perform the following operations: $ [3, 7] $ $ \xrightarrow[\text{decrease}]{\text{i = 2}} $ $ [3, 6] $ $ \xrightarrow[\text{decrease}]{\text{i = 2}} $ $ [3, 5] $ $ \xrightarrow[\text{increase}]{\text{i = 1}} $ $ [4, 6] $ $ \xrightarrow[\text{decrease}]{\text{i = 2}} $ $ [4, 5] $ Hence the answer is $ 4 $ . - $ b_1 = 3 $ : We need to convert $ [3, 7] \rightarrow [3, 5] $ . We can perform the following operations: $ [3, 7] $ $ \xrightarrow[\text{decrease}]{\text{i = 2}} $ $ [3, 6] $ $ \xrightarrow[\text{decrease}]{\text{i = 2}} $ $ [3, 5] $ Hence the answer is $ 2 $ .