축구

플레이어 1이 가진 공을 플레이어 N에게 전달할 때 드는 최소 총 피로도를 구한다.

어려움8그래프최단 경로그리디구현아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

당신은 JOI 리그의 명문 축구팀 감독이다.

팀에는 1번부터 NN번까지 번호가 붙은 NN명의 선수가 있다. 선수들은 대회에서 우승하려고 열심히 연습하고 있다. 경기장은 남북 방향 길이가 HH미터, 동서 방향 길이가 WW미터인 직사각형이다. 경기장의 북서쪽 모서리에서 남쪽으로 ii미터, 동쪽으로 jj미터 떨어진 지점을 (i,j)(i, j)로 나타낸다.

연습이 끝나면 선수들은 공을 정리해야 한다. 정리를 시작할 때 선수 ii (1iN1 \le i \le N)는 (Si,Ti)(S_i, T_i)에 서 있다. 경기장에는 공이 하나뿐이고, 처음에는 선수 1이 공을 가지고 있다. 당신은 선수 NN과 함께 (SN,TN)(S_N, T_N)에 서 있다. 공이 (SN,TN)(S_N, T_N)으로 전달되어 당신이 공을 받으면 정리가 끝난다. 당신은 정리하는 동안 움직일 수 없다.

당신은 선수들에게 행동을 지시할 수 있다. 선수가 행동하면 그 행동에 따라 선수의 피로도가 증가한다. 선수가 할 수 있는 행동은 아래와 같다. 공을 가진 선수는 (i), (ii), (iii) 중 하나를 할 수 있고, 공을 가지지 않은 선수는 (ii)나 (iv)를 할 수 있다.

(i) 동, 서, 남, 북 중 한 방향과 양의 정수 pp를 고른 뒤, 그 방향으로 공을 찬다. 공은 정확히 pp미터 움직인다. 공을 찬 선수는 제자리에 머물고 공을 잃는다. 피로도는 A×p+BA \times p + B만큼 증가한다.

(ii) 동, 서, 남, 북 중 한 방향을 골라 그 방향으로 1미터 이동한다. 공을 가지고 있으면 공과 함께 이동한다. 공을 가졌는지와 관계없이 피로도는 CC만큼 증가한다.

(iii) 공을 자기가 서 있는 자리에 내려놓는다. 선수는 공을 잃고, 피로도는 변하지 않는다.

(iv) 공을 가진다. 피로도는 변하지 않는다. 이 행동은 선수가 공과 같은 위치에 서 있고 아무도 공을 가지고 있지 않을 때만 할 수 있다.

선수나 공이 경기장 밖으로 나가는 것도 가능하다. 여러 선수가 같은 위치에 서 있을 수도 있다.

선수들은 막 연습을 마쳤으므로 피로도가 너무 많이 증가하면 안 된다. 경기장의 크기와 선수들의 위치가 주어질 때, 정리 과정에서 증가하는 선수 피로도의 합으로 가능한 최솟값을 구하는 프로그램을 작성하시오.

입력

표준 입력으로 다음 데이터를 읽는다.

  • 첫째 줄에 두 정수 HH, WW가 공백으로 구분되어 주어진다. 경기장은 남북 길이가 HH미터, 동서 길이가 WW미터인 직사각형이다.
  • 둘째 줄에 행동에 따른 피로도 증가량을 나타내는 세 정수 AA, BB, CC가 공백으로 구분되어 주어진다.
  • 셋째 줄에 선수의 수 NN이 주어진다.
  • 이어지는 NN개의 줄 중 ii번째 줄 (1iN1 \le i \le N)에 두 정수 SiS_i, TiT_i가 공백으로 구분되어 주어진다. 정리를 시작할 때 선수 ii(Si,Ti)(S_i, T_i)에 서 있다는 뜻이다.

출력

표준 출력에 한 줄을 출력한다. 정리 과정에서 증가하는 선수 피로도의 합으로 가능한 최솟값을 출력한다.

제한

모든 입력 데이터는 다음 조건을 만족한다.

  • 1H5001 \le H \le 500
  • 1W5001 \le W \le 500
  • 0A1090 \le A \le 10^9
  • 0B1090 \le B \le 10^9
  • 0C1090 \le C \le 10^9
  • 2N1000002 \le N \le 100\,000
  • 0SiH0 \le S_i \le H (1iN1 \le i \le N)
  • 0TiW0 \le T_i \le W (1iN1 \le i \le N)
  • (S1,T1)(SN,TN)(S_1, T_1) \ne (S_N, T_N)