#P2336. Ferry Loading II

Ferry Loading II

题目描述

在桥梁普及之前,人们常用渡船来运送车辆过河。与大型渡船不同,河流渡船依靠缆绳引导,并由河流的水流提供动力。车辆从渡船的一端驶入,渡船穿过河流,车辆再从渡船的另一端驶出。

现有一艘渡船,每次可以运送 nn 辆车过河,过河需要 tt 分钟,返回也需要 tt 分钟。现有 mm 辆车按照给定的时间表到达渡口。问:所有车辆被运送到对岸的最早时间是多少?为了在该时间前完成运输,船夫必须进行的最少趟数是多少?

输入格式

第一行输入包含 cc,表示测试用例的数量。
每个测试用例的第一行包含三个整数 nn, tt, mm
接下来的 mm 行,每行给出一个车辆的到达时间(以从当天开始的分钟数表示)。
船夫可以自由决定何时运行渡船,但每次只能运送已到达的车辆(即出发时间必须晚于等于车辆的到达时间)。

输出格式

对于每个测试用例,输出一行两个整数:

  1. 最后一辆车被运送到对岸的时间(以从当天开始的分钟数表示);
  2. 在该时间内完成运输所需的最少趟数。

数据范围

  • 0<n,t,m<14400 < n, t, m < 1440
  • 每个测试用例的车辆到达时间按非递减顺序给出。

示例输入 1

2
2 10 10
0
10
20
30
40
50
60
70
80
90
2 10 3
10
30
40

示例输出 1

100 5
50 2