만드는 중입니다

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

SolveMe

시간 제한8초메모리 제한512 MB

요약
N개의 방에서 A와 B 두 함수를 정하는 경우 중, A를 X번, B, A를 Y번, B, A를 Z번 차례로 따라갔을 때 모든 방으로 돌아오는 경우의 수를 1,000,000,007로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

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

문제

NN개의 방이 있고, 각 방의 바닥에는 토끼 그림이 그려져 있다. 방 rr의 토끼 그림 오른쪽 귀 부분에 올라가면, 방 A[r]A[r]에 그려진 토끼의 꼬리 위로 순간이동한다. 마찬가지로 방 rr의 토끼 그림 왼쪽 귀 부분에 올라가면, 방 B[r]B[r]에 그려진 토끼의 꼬리 위로 순간이동한다.

정수 XX, YY, ZZ가 주어진다. 고양이는 다음 조건을 만족하도록 순간이동을 설정하려고 한다. 순간이동을 설정하는 N2NN^{2N}가지 방법 중 조건을 만족하는 것이 몇 가지인지 1,000,000,007로 나눈 나머지를 구하시오.

조건: 임의의 방 rr에 대해, rr에서 출발하여 오른쪽 귀에 정확히 XX번 올라가고, 왼쪽 귀에 정확히 1번 올라가고, 오른쪽 귀에 정확히 YY번 올라가고, 왼쪽 귀에 정확히 1번 올라가고, 오른쪽 귀에 정확히 ZZ번 올라가면 rr로 돌아온다.

입력

입력은 다음 형식으로 주어진다:

NN XX YY ZZ

출력

순간이동을 설정하는 방법 중 조건을 만족하는 것의 수를 1,000,000,007로 나눈 나머지를 한 줄에 출력한다.

제한

  • NN은 1 이상 1,000 이하이다.
  • XX, YY, ZZ는 0 이상 1,000,000,000,000,000,000 이하이다.

예제2

  1. 예제 1

    입력
    3 1 0 1
    
    예상 출력
    18
    
  2. 예제 2

    입력
    5 8 5 8
    
    예상 출력
    120