Not Equal
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小苯有一个长度为 n 的序列 a_1, a_2, \dots, a_n,序列中的每个元素都是正整数

\hspace{15pt}小苯可以进行任意次操作(可以不操作),每次操作可以从以下两种形式中任选一种进行:
\hspace{23pt}\bullet\,选择序列中任意一个位置 i\left(1 \leqq i \leqq n\right),并将 a_i 变为 a_i + 1,该操作花费 b_i
\hspace{23pt}\bullet\,选择序列中任意一个位置 i\left(1 \leqq i \leqq n\right),满足 a_i > 1,将 a_i 变为 a_i - 1,该操作花费 c_i

\hspace{15pt}小苯希望序列中相邻两个元素都不相同。你的任务就是求出,满足条件的最少花费。可以证明一定可以通过有限轮操作得到满足条件的序列。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1 \leqq T \leqq 10^4\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入一个整数 n\left(1 \leqq n \leqq 2 \times 10^5\right),表示序列的长度。
\hspace{15pt}第二行输入 n 个正整数 a_1, a_2, \dots, a_n\left(1 \leqq a_i \leqq 10^9\right),表示序列 a
\hspace{15pt}第三行输入 n 个正整数 b_1, b_2, \dots, b_n\left(1 \leqq b_i \leqq 10^9\right),表示序列 b
\hspace{15pt}第四行输入 n 个正整数 c_1, c_2, \dots, c_n\left(1 \leqq c_i \leqq 10^9\right),表示序列 c

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2 \times 10^5

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行输出一个整数,表示满足条件的最小操作花费。
示例1

输入

复制
2
4
1 3 3 4
1 2 1 2
1 2 3 2
3
10 1 10
1 1 1
1 1 1

输出

复制
2
0

说明

\hspace{15pt}对于第一组测试数据,一种最优方案是将序列变为 \{1,2,3,4\},花费为 c_2=2

备注:

\hspace{15pt}在几乎全部的情况下,PyPy 的运行速度优于 Python,我们建议您选择对应版本的 PyPy 进行提交、而不是 Python。