벌 떼

허용된 8방위 방향 집합이 주어질 때, 모든 벌이 한 정수 점에 모이는 최소 총 이동 횟수를 구한다.

보통7기하최단 경로수학구현아직 제출이 없습니다시간 제한10초메모리 제한512 MB

문제

거센 폭풍이 벌 떼를 좌표평면 위에 흩어 놓았다. 지금 각 벌은 정수 좌표를 가진 어떤 점에 있다. 모든 벌은 정수 좌표를 가진 한 점에 함께 모이려고 한다. 이 벌 떼는 유전적 돌연변이가 있어서 정해진 방향으로만 날 수 있다. 허용된 방향은 동서남북 네 방위와 북동, 북서, 남동, 남서 네 방위를 합친 여덟 방향 중 일부이다. 북쪽은 yy 좌표가 커지는 방향이고 동쪽은 xx 좌표가 커지는 방향이다.

한 걸음에 벌 한 마리가 허용된 방향 중 하나로 이웃한 정수 좌표 점까지 이동할 수 있다. 예를 들어 북동쪽으로 한 걸음 가면 (x,y)(x, y)에서 (x+1,y+1)(x+1, y+1)로, 서쪽으로 한 걸음 가면 (x,y)(x, y)에서 (x1,y)(x-1, y)로 이동한다. 모든 벌이 한 점에 모이는 데 필요한 걸음 수의 합의 최솟값을 구하라.


첫 번째 예제를 나타낸 그림

입력

첫째 줄에 허용된 방향의 수 dd가 주어진다. (1d81 \le d \le 8)

둘째 줄에 서로 다른 문자열 dd개가 공백 하나씩을 사이에 두고 주어진다. 각 문자열은 N, NW, W, SW, S, SE, E, NE 중 하나이며, 차례대로 북, 북서, 서, 남서, 남, 남동, 동, 북동을 뜻한다.

다음 줄에 벌의 수 nn이 주어진다. (1n501 \le n \le 50)

다음 nn개의 줄 중 kk번째 줄에 kk번째 벌이 지금 있는 점의 좌표 xkx_k, yky_k가 주어진다. (106xk,yk106-10^6 \le x_k, y_k \le 10^6) 모든 벌은 서로 다른 점에 있다.

출력

걸음 수의 합의 최솟값을 출력한다. 모든 벌이 한 점에 모일 수 있는 입력만 주어진다.