1848: QинYу数组1.0
[Creator : ]
Description
已知两个长度为n的数组a1,a2,…an和b1,b2,…,bn。
以下操作可以进行任意次数:
1.选择整数索引i(1≤i≤n);
2.交换ai和bi。
使得|a1−a2|+|a2−a3|+⋯+|a(n - 1)−an| +| b1−b2|+|b2−b3|+⋯+|b(n−1)−bn|最小可能的和是多少,执行几次(可能是零)操作后可以实现的?
以下操作可以进行任意次数:
1.选择整数索引i(1≤i≤n);
2.交换ai和bi。
使得|a1−a2|+|a2−a3|+⋯+|a(n - 1)−an| +| b1−b2|+|b2−b3|+⋯+|b(n−1)−bn|最小可能的和是多少,执行几次(可能是零)操作后可以实现的?
Input
第一行包含一个整数t(1≤t≤4000)-测试用例的数量。 然后,接下来是t个测试用例。
每个测试用例的第一行包含单个整数n(2≤n≤25)-数组a和b的长度。
每个测试用例的第二行包含n个整数a1,a2,…,an(1≤ai≤10^9)-数组a。
每个测试用例的第三行包含n个整数b1,b2,…,bn(1≤bi≤10^9)-数组b。
每个测试用例的第一行包含单个整数n(2≤n≤25)-数组a和b的长度。
每个测试用例的第二行包含n个整数a1,a2,…,an(1≤ai≤10^9)-数组a。
每个测试用例的第三行包含n个整数b1,b2,…,bn(1≤bi≤10^9)-数组b。
Output
对于每个测试用例,输出一个整数-可能的最小和
Sample Input Copy
3
4
3 3 10 10
10 10 3 3
5
1 2 3 4 5
6 7 8 9 10
6
72 101 108 108 111 44
10 87 111 114 108 100
Sample Output Copy
0
8
218
HINT
(输入输出请使用scanf(),printf())
在第一个测试用例中,我们可以,例如,把a3和b3交换,把a4和b4交换。 我们会得到数组a =[3, 3, 3, 3)和b =(10、10、10、10)和3⋅| 3−3 | + 3⋅| 10−10| = 0。
在第二个测试用例中,数组已经有了最小的和(如上所述),等于|1−2|+⋯+|4−5|+|6−7|+⋯+ |9−10| =4+4=8。
例如,在第三个测试用例中,我们可以交换a5和b5。