레이저 연구소
시간 제한2초메모리 제한1024 MB
N×M 격자에서 축에 평행하지 않은 모든 격자점 사이 레이저 발사의 수리 비용 합을 구합니다. 건물은 A원, 벽은 B원으로 계산합니다.
문제
아무도 모르는 외딴 섬에서 ahgus89와 Sait2000은 레이저 연구를 하고 있다. 이 섬에는 여러 연구 구역이 있고, 그중 레이저 연구 구역은 모양의 직사각형이다. 이 영역은 크기의 정사각형 개로 나뉘어 있다. 각 정사각형의 꼭짓점에는 건물이 하나씩 있고, 각 정사각형의 변에는 건물을 잇는 벽이 하나씩 있다. 따라서 건물은 총 개, 벽은 총 개이다.
ahgus89와 Sait2000은 레이저의 성능을 시험하려고 건물에서 건물로 레이저를 쏜다. 가능한 모든 시작점과 끝점에 대해 레이저를 쏜다. 레이저는 직선으로만 나가므로 건물과 벽이 레이저를 막을 수 있다.
ahgus89는 출력을 강하게 하려고 건물과 벽에 구멍을 내서라도 실험하려고 한다. 시작점과 끝점에 있는 건물을 포함해 경로 위의 모든 건물과 벽에 구멍이 뚫린다. 레이저가 건물을 정확히 통과하면 그 건물에 붙은 벽에는 구멍이 뚫리지 않는다. 다만 레이저를 축이나 축에 평행하게 쏘면 벽이 통째로 무너지므로, 이런 경우는 제외하고 쏜다.

위 그림은 , 인 경우 에서 로 레이저를 쏜 모습이다. 건물 3개와 벽 6개에 구멍이 뚫린다.
레이저를 한 번 쏘고 나면 구멍이 뚫린 건물과 벽을 모두 수리한다. 건물 하나를 수리하는 데 원, 벽 하나를 수리하는 데 원이 든다. 수리를 마쳐야 다음 레이저를 쏠 수 있다.
입력
첫 번째 줄에 , , , 가 공백으로 구분되어 주어진다. ()
출력
실험을 마친 뒤의 총 수리비를 출력한다. 값이 매우 커질 수 있으므로 로 나눈 나머지를 출력한다.
힌트
첫 번째 테스트의 상황은 다음과 같다.
- 에서 로 쏘고 나면 건물 2개를 수리한다.
- 에서 로 쏘고 나면 건물 2개를 수리한다.
- 에서 로 쏘고 나면 건물 2개를 수리한다.
- 에서 로 쏘고 나면 건물 2개를 수리한다.
따라서 건물 8개를 수리하므로 총 수리비는 원이다.
두 번째 테스트에서 에서 로 쏘고 나면 건물 3개만 수리한다는 점에 유의하라.