在平面直角坐标系上,有一个足球场,横坐标范围 [0, X],纵坐标范围 [0, Y ]。
开始时,球场上站了 N 个球员,坐标分别为 (xi, yi)。球在开始时 1 号球员的位置上,你希望让这个球到开始时 N 号球员的位置上。
你可以指挥任一球员进行下列某一操作,但某些操作会提升球员的疲劳度。指挥次数不限但应当有明确的先后顺序。
已知每个球员有两种状态:控球和没有控球。
你可以指挥控球的球员进行如下操作:
踢球。在上下左右四个方向中任选一个,并指定一个正整数 p,该球员将球朝指定方向踢出恰好 p个单位。该球员不会移动,且自动停止控球,疲劳度上升 A × p + B。 • 运球。在上下左右四个方向中任选一个,该球员带球,朝指定方向移动 1 个单位。疲劳度上升C。 • 停止控球。该球员的疲劳度不改变。
你可以指挥没有控球的球员进行如下操作:
移动。在上下左右四个方向中任选一个,该球员朝指定方向移动 1 个单位,疲劳度上升 C。 • 控球。如果该球员所在的位置恰好有球,且没有其他球员控球,该球员才能控球。该球员的疲劳度不改变。
球员和球有可能跑出场外,一个位置上可能有多个球员。
球员可视作质点,因此球滚动和运球时都不会因为碰到球员而停下。
让球滚到指定位置的过程中,求所有球员上升的疲劳度之和的最小值。
输入格式
第一行两个整数 X Y 用空格分隔。
第二行三个整数 A B C,用空格分隔。
第三行一个整数 N。接下来的 N 行,第 i 行两个整数 xi,yi,用空格分隔。
输入的所有数的含义见题目描述。
输出格式
一行,一个整数,表示所有球员上升的疲劳度之和的最小值。
输入: 6 5 1 3 6 3 1 1 0 4 6 5 输出: 26样例解释 1
最优解如下:
1. 球员 1 把球向上踢出 3 米。疲劳度上升了 1 × 3 + 3 = 6,球移动到 (1, 4)。2. 球员 2 向右移动1 米。疲劳度又上升了 6。3. 球员 2 开始控球。4. 球员 2 向上运球 1 米。疲劳度又上升了 6,球移动到(1, 5)。5. 球员 2 把球向右踢出 5 米,疲劳度上升了 1 × 5 + 3 = 8,球移动到 (6, 5)。
此时,疲劳度之和为 6 + 6 + 6 + 8 = 26 。没有更好的方案。
样例 2
输入: 4 6 0 5 1000 6 3 1 4 6 3 0 3 0 4 0 0 4 输出: 2020样例 3
见下发文件,该样例满足 N ⩽ 1000, A = 0。
数据范围
本题采用捆绑测试。
对于所有数据,1 ⩽ X, Y ⩽ 300, 0 ⩽ A, B, C ⩽ 109, 2 ⩽ N ⩽ 105, 0 ⩽ xi ⩽ X, 0 ⩽ yi ⩽ Y,(S1, T1) ≠(SN , TN )。
子任务 1 (分值: 10)
N = 2
子任务 2 (分值: 30)
N ⩽ 1000, A = 0;
子任务 3 (分值: 60)
无特殊限制。
