만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

토러스 위의 도미노

시간 제한2초메모리 제한1024 MB

요약
A×B 토러스에서 C×D 크기의 구멍을 제외한 바깥 표면을 도미노로 채우는 방법의 수를 구합니다.
난이도

어려움10점 중 8점

유형
조합론, 수학
정답자
아직 제출이 없습니다

문제

늘어나는 정사각형 종이가 있다고 상상해 보자. 이 종이를 격자선을 따라 A×BA \times B 크기의 직사각형으로 자른다. 모든 칸에는 1부터 A⋅BA \cdot B까지 번호가 매겨져 있다. 이 직사각형에서 격자선을 따라 C×DC \times D 크기의 직사각형을 다시 잘라낸다. 이때 길이가 CC인 변은 길이가 AA인 변과 평행해야 한다. 그다음 길이가 BB인 변끼리 붙이고, 마지막으로 길이가 AA인 변끼리 붙인다. 그 결과 가운데에 C×DC \times D 칸짜리 직사각형 구멍이 뚫린 토러스가 만들어진다. (토러스는 도넛의 표면과 같은 모양이다.)

토러스의 칸은 번호가 다르면 서로 다른 것으로 본다.

이제 늘어나는 도미노로 구멍이 뚫린 토러스의 바깥 표면을 덮는다. 각 도미노는 흰색 칸과 검은색 칸, 서로 다른 색의 두 칸으로 이루어지며, 두 칸은 변을 공유한다.

타일링은 다음 조건을 만족해야 한다. 변으로 인접한 토러스의 두 칸이 서로 다른 도미노에 속하면, 두 칸의 색은 같아야 한다. 즉 둘 다 흰색이거나 둘 다 검은색이어야 한다.

두 타일링이 다르다는 것은 다음 두 조건 중 하나 이상이 성립한다는 뜻이다.

  1. 토러스의 어떤 칸이 한 타일링에서는 흰색이고 다른 타일링에서는 검은색이다.
  2. 어떤 칸을 덮은 도미노의 나머지 칸이 한 타일링에서는 Y1Y_1이고 다른 타일링에서는 Y2Y_2이며, Y1≠Y2Y_1 \ne Y_2이다.

입력

입력의 첫 줄에 네 정수 AA, BB, CC, DD가 주어진다 (4≤A,B≤1094 \le A, B \le 10^9, 2≤C<A2 \le C < A, 2≤D<B2 \le D < B, 모든 수는 짝수이다).

출력

타일링의 개수를 출력한다.

힌트

다음 그림은 주어진 예시에 대해 가능한 타일링 중 하나를 보여준다.

예제1

  1. 예제 1

    입력
    4 6 2 4
    
    예상 출력
    4