#joi2017hod. [joi2017ho_d]サッカー (Soccer)
[joi2017ho_d]サッカー (Soccer)
你是 JOI 联赛的一家名门足球俱乐部的经理。
俱乐部有 N 名球员,每个球员都被分配了从 1 到 N 的编号。球员们每天在场地上训练,目标是夺冠。球场呈长方形,纵向长 H 米,横向长 W 米。球场的纵向为南北方向平行,横向为东西方向平行。从球场的西北角向南移动 i 米,向东移动 j 米的位置称为点 (i, j)。
训练结束后,必须收拾使用过的球。起始时,球员 i () 位于位置 ,只有球员 1 持有一个球。你和球员 N 一起位于位置 ,通过将球移动到位置 来完成清理工作。在整个清理过程中,你无法移动。
你可以指示球员们采取行动。球员们采取行动后,会累积疲劳度。
以下行动中,持有球的球员可以执行行动 (i),(ii),(iii),其他球员可以执行行动 (ii),(iv)。
(i) 指定东西南北四个方向中的一个方向和一个正整数 p。踢球朝指定方向移动球,使球正好移动 p 米。执行此行动的球员不会移动,球将不再被持有。疲劳度增加 A × p + B。 (ii) 指定东西南北四个方向中的一个方向。向该方向移动 1 米。如果移动的球员持有球,则球和球员一起移动。无论是否有球,疲劳度增加 C。 (iii) 放下球,不再持有球。疲劳度不增加。 (iv) 持有球。疲劳度不增加。只有位于与球相同位置且没有其他人持有球的球员才能执行此操作。
请注意,球员和球可以离开球场,也可以有多个球员在同一位置。
为了使球员在训练后不积累太多疲劳度,你决定找出清理过程中球员累积的疲劳度总和的最小值。
任务
给定球场的大小和球员的位置,请编写程序计算清理过程中球员累积的疲劳度总和的最小值。
输入
从标准输入读取以下输入:
- 第一行包含两个整数 H 和 W,以空格分隔。它们表示球场是一个纵向长度为 H 米,横向长度为 W 米的矩形。
- 第二行包含与疲劳度增加相关的三个整数 A、B 和 C,以空格分隔。
- 第三行包含一个整数 N,表示有 N 个球员。
- 接下来的 N 行中,第 i 行()包含两个整数 和 ,以空格分隔。它们表示球员 i 在清理开始时位于位置 。
输出
将最小值作为清理过程中球员累积的疲劳度总和输出到标准输出。
限制
所有输入数据满足以下条件:
- 。
- 。
- 。
- 。
- 。
- 。
- ()。