콜라 줍기
시간 제한3초메모리 제한1024 MB
두 사람이 각자 최단 경로로 상대의 집까지 이동하며, 출발점과 도착점을 제외하고 경로가 겹치지 않을 때 주울 수 있는 콜라의 최대 개수를 구합니다.
문제
키파는 카루나와 아주 친합니다. 둘은 격자 위에 살고 있고, 격자칸을 상하좌우로 이동할 수 있습니다. 번째 행 번째 열의 격자칸을 로 표기합니다. 키파의 집은 에, 카루나의 집은 에 있습니다.
그런데 아무리 친해도 둘 다 양보하지 않는 것이 하나 있습니다. 바로 좋아하는 콜라입니다. 키파는 코카콜라 제로를, 카루나는 펩시 제로를 좋아합니다.
어느 날 격자 위에 코카콜라 제로와 펩시 제로가 나타났다는 소식을 들었습니다. 둘은 통화로 오래 의논한 끝에 다음 규칙에 따라 격자칸의 콜라를 줍기로 했습니다.
- 키파는 코카콜라 제로만, 카루나는 펩시 제로만 줍습니다.
- 둘 다 서로의 집까지 최단 거리로 한 번 이동할 체력만 있고, 도착한 뒤에는 반드시 상대의 집에서 쉽니다. 두 집 사이의 최단 거리는 번 이동하는 것이므로, 둘 모두 정확히 그만큼 이동해서 키파는 카루나의 집에, 카루나는 키파의 집에 도착해야 합니다.
- 코카콜라 제로와 펩시 제로는 이름처럼 무게가 0이라서 체력에 영향을 주지 않습니다.
- 둘 다 코로나19가 걱정되어서, 두 경로는 두 집을 제외하고 격자칸을 하나도 공유하면 안 됩니다. 이동 중에 만나지 않는다는 조건보다 훨씬 강한 조건입니다.
- 콜라가 많을수록 좋다는 데는 합의했으므로, 콜라의 종류와 상관없이 주운 개수의 합을 최대화하기로 했습니다.
입력
1행에 격자의 크기 이 주어집니다. ()
2행부터 개의 줄에 각 격자칸의 코카콜라 제로 개수가 주어집니다. 번째 줄에 이 공백으로 구분되어 주어집니다. (, 모든 에 대해 )
번째 줄부터 개의 줄에 같은 형식으로 펩시 제로 개수가 주어집니다. 번째 줄에 이 주어지며, 모든 에 대해 입니다.
키파의 집과 카루나의 집에는 콜라가 없습니다. 즉, 입력은 항상 을 만족합니다.
출력
조건을 만족하면서 키파와 카루나가 주울 수 있는 콜라 개수 합의 최댓값을 출력합니다.
힌트
방법은 두 가지가 있습니다.
- 키파가 'ㄱ'자 모양으로 카루나의 집에 가고, 카루나가 'ㄴ'자 모양으로 키파의 집에 갑니다. 이때 키파는 코카콜라 제로를 5개, 카루나는 펩시 제로를 3개 주울 수 있어서 합은 5 + 3 = 8입니다.
- 키파가 'ㄴ'자 모양으로 카루나의 집에 가고, 카루나가 'ㄱ'자 모양으로 키파의 집에 갑니다. 이때 키파는 코카콜라 제로를 2개, 카루나는 펩시 제로를 4개 주울 수 있어서 합은 2 + 4 = 6입니다.
두 방법 중 콜라를 더 많이 줍는 것은 첫 번째 방법이므로 8을 출력합니다.