SP2485 PHONELIN - Phone Lines
题目描述
在一条直线上分布着若干城市和信号塔。可以通过支付一定费用将信号塔设置为可接受连接的状态。我们得到了这些信号塔和城市的 X 轴坐标。我们的任务是选择一定数量的塔设为可接受连接,以此来获取最大利润。
具体规则如下:每个城市在成功发送数据到某个塔后,会根据公式**D - 数据传输距离**向你支付费用,其中,数据传输距离指的是城市位置和塔位置之间的差值。如果某个塔不在范围 D 内,或者没有设置为可接受连接的状态,城市将无法发送数据,并立即停止,不再继续尝试其他塔。
每个城市在选择信号塔时按以下算法操作:
1. 找到该城市左侧最近的信号塔。
2. 如果该塔位于范围 D 内且设置为可接受连接,城市就将数据发送到这个塔。如果超出范围或者塔未接受连接,则城市停止发送。
3. 如果数据发送成功,城市会:
1. 跳过接下来的三个塔(无论这些塔是否能接受连接)。
2. 尝试将数据发送到跳过的三个塔之后的第四个塔,使用步骤2的方法再进行判断。
输入格式
输入由多个测试用例组成。每个测试用例的第一行包含三个整数:D、C 和 T,分别表示数据传输的最大范围、城市的数量和信号塔的数量。第二行包含 C 个整数,表示各城市的 X 轴位置。接下来的 T 行每行包含两个整数:location[i] 表示第 i 个塔的位置和 connection-cost[i] 表示将塔设为可接受连接的费用。输入以一行 "-1 -1 -1" 结束。
输出格式
对于每个测试用例,输出一行,给出可以获取的最大利润。
说明/提示
- 任意两个点(信号塔或城市)不会具有相同的 X 坐标。
- $T, C \le 100$。
### 样例输入
```
4 9 6
23
43
18
15
29
50
41
31
40
32 2
26 0
46 7
48 0
50 3
38 1
-1 -1 -1
```
### 样例输出
```
5
```
**本翻译由 AI 自动生成**