小苯的数组重排1.0
题号:NC302581
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小苯有一个包含 n 个整数的数组,她想要重新排列数组的元素,使得相邻两个元素的加和之和最大。即最大化:

\hspace{15pt}S=(a_1+ a_2) + (a_2 + a_3) + ... + (a_{n-1}+ a_n)

\hspace{15pt}你的任务就是帮助小苯找到最大的 S 值。

输入描述:

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

\hspace{15pt}第一行包含一个整数 n\ (2 \leqq n \leqq 2 \times 10^5),表示数组的长度。
\hspace{15pt}第二行 n 个整数表示数组的每个值 a_i\ (1 \leqq a_i \leqq 10^5)

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

输出描述:

对于每组测试数据:
\hspace{15pt}在单独的一行输出一个整数,表示最大的 S 值。
示例1

输入

复制
2
4
1 2 3 4
4
3 4 5 6

输出

复制
17
29

说明

\hspace{15pt}对于第一组测试数据,我们可以重排为:\{2,4,3,1\} 最优,此时 S=(2+4)+(4+3)+(3+1)=17,最大。