#6908. 海豚电梯

海豚电梯

海豚电梯

时间限制:1秒

海底一直带给海豚一种非常特别的感觉。在那里,它们可以发现许多不同种类的植物和鱼类。因此,海豚喜欢尽可能潜入更深的地方,探索新的区域。

为此,它们建造了一部电梯。这部电梯能够带它们前往正常情况下无法到达的深海区域。

所有海豚都想使用这部新电梯。但是,这部电梯每次最多只能容纳 2只海豚,而且承载过大的重量非常危险。

已知想要使用电梯的海豚数量以及每只海豚的重量,请你安排每次乘坐电梯的海豚,使得:

  1. 电梯运行的总次数尽可能少;
  2. 在满足运行次数最少的前提下,所有行程中的最大总重量尽可能小。

一趟行程的总重量,等于该趟电梯中所有海豚的重量之和。

输入数据(elevator.in)

第一行包含一个整数 NN,表示海豚的数量:

1≤N≤1000001\le N\le 100000

接下来的 NN 行,每行包含一个整数 WiW_i,表示第 ii 只海豚的重量:

1≤Wi≤1000001\le W_i\le 100000

输出数据(elevator.out)

输出两个以空格分隔的整数:

电梯运行次数 所有行程中的最小可能最大总重量

第一个数表示电梯需要运行的最少次数。

第二个数表示在运行次数最少的情况下,某一趟行程可能达到的最大总重量的最小值。

输入示例1

6
1
4
3
50
5
4

输出示例1

3 51

一种最优安排是:

第1趟:1和50,总重量为51
第2趟:3和5,总重量为8
第3趟:4和4,总重量为8

一共运行3次,所有行程中的最大总重量为51。

输入示例2

3
12
5
7

输出示例2

2 12

一种最优安排是:

第1趟:12单独乘坐,总重量为12
第2趟:5和7,总重量为12

一共运行2次,所有行程中的最大总重量为12。

测试点编号 层级 n 数据特征 标准输出 设计目的
1 弱数据 1 最小规模,单只海豚 1 1 检查奇数分支及无配对情况
2 4 偶数、输入无序 2 10 检查排序和基本配对逻辑
3 正常数据 5 奇数、含重复重量 3 10 检查最重者单独乘坐,且配对重量可能更大
4 10 偶数、多组对称配对、含重复值 5 101 检查多轮双指针配对及最大值统计
5 极限数据 6 10¹⁸ 级大整数、输入无序 3 5000000000000000000 检查 long long 运算和大数相加