아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

개미

시간 제한1초메모리 제한128 MB

요약
정육면체의 한 꼭짓점에서 다른 꼭짓점으로, 방금 지나온 모서리를 다시 쓰지 않으면서 정확히 k개의 모서리를 지나는 경로의 수를 p로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
행렬, 동적 계획법, 수학, 조합론
정답자
아직 제출이 없습니다

문제

개미 한 마리가 정육면체 ABCDEFGHABCDEFGH의 모서리를 따라 걷습니다.

정육면체

개미는 주어진 한 꼭짓점에서 다른 한 꼭짓점까지 정확히 kk개의 모서리를 지나 가는 방법이 몇 가지인지 알고 싶어 합니다. (개미는 한 모서리에 들어서면 도중에 되돌아가지 않고 반드시 그 모서리의 반대쪽 끝까지 갑니다.) 어떤 모서리를 xx번 지나면 그 모서리는 xx번으로 셉니다.

개미는 흥미로운 경로만 세고 싶어 합니다. 즉, 어떤 꼭짓점에 도착하면 그 꼭짓점으로 들어올 때 방금 사용한 모서리와는 다른 모서리로 나가려 합니다 (같은 모서리를 연속해서 두 번 사용하지 않습니다).

개미는 어떤 pp에 대해 00부터 p−1p - 1까지의 정수만 셀 수 있으므로, 답을 pp로 나눈 나머지를 구하세요.

정육면체의 구조는 다음과 같습니다: 아랫면은 정사각형 ABCDABCD(모서리 ABAB, BCBC, CDCD, DADA), 윗면은 정사각형 EFGHEFGH(모서리 EFEF, FGFG, GHGH, HEHE)이며, 두 면을 잇는 수직 모서리는 AEAE, BFBF, CGCG, DHDH입니다 (모서리는 모두 12개).

다음을 수행하는 프로그램을 작성하세요:

  • 시작 꼭짓점, 끝 꼭짓점, 경로의 모서리 개수, 정수 pp를 입력받는다,
  • 위 조건을 만족하는 흥미로운 경로의 수를 pp로 나눈 나머지를 계산한다,
  • 그 답을 표준 출력에 쓴다.

입력

첫째 줄에 대문자 알파벳 두 개 v1v_1과 v2v_2가 공백 하나로 구분되어 주어집니다 (A≤v1,v2≤HA \le v_1, v_2 \le H, v1≠v2v_1 \ne v_2). 각각 개미가 출발하는 꼭짓점과 도착하는 꼭짓점을 나타냅니다. 둘째 줄에 두 정수 kk와 pp가 공백 하나로 구분되어 주어집니다 (1≤k≤2 000 000 0001 \le k \le 2\,000\,000\,000, 2≤p≤1 000 000 0002 \le p \le 1\,000\,000\,000).

출력

꼭짓점 v1v_1에서 꼭짓점 v2v_2까지 정확히 kk개의 모서리로 이루어진 흥미로운 경로의 수를 pp로 나눈 나머지를 정수 하나로 표준 출력에 출력하세요.

힌트

힌트

예제4

  1. 예제 1

    입력
    A B
    3 100
    
    예상 출력
    2
    
  2. 예제 2

    입력
    A B
    1 1000
    
    예상 출력
    1
    
  3. 예제 3

    입력
    A G
    1 1000
    
    예상 출력
    0
    
  4. 예제 4

    입력
    A G
    3 1000
    
    예상 출력
    6