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

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

베라와 삼각관계

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

요약
친구 쌍마다 모듈러 거듭제곱 값의 이진수 1 개수 홀로 호감 방향이 정해질 때, 세 명이 순환하는 호감 관계의 개수를 센다.
난이도

어려움10점 중 9점

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

문제

베라에게는 00번부터 N−1N-1번까지 번호가 붙은 친구 NN명이 있다. 모두 소프트웨어 공학을 전공하느라 연애할 시간이 없지만, 서로 짝사랑은 한다.

음이 아닌 정수 xx에 대해 g(x)g(x)를 xx를 이진법으로 쓴 결과에 들어 있는 11의 개수로 정의한다. 정수 상수 AA, BB, MM을 써서 f(i,j)=g((A⋅Bi⋅N+j) mod M)f(i, j) = g((A \cdot B^{i \cdot N + j}) \bmod M)으로 정의한다.

i<ji < j인 친구 ii와 jj에 대해, f(i,j)f(i, j)가 짝수이면 ii가 jj를 짝사랑하고 홀수이면 jj가 ii를 짝사랑한다.

베라는 삼각관계를 재미있어한다. 삼각관계는 ii가 jj를, jj가 kk를, kk가 ii를 짝사랑하는 세 친구 ii, jj, kk의 집합이다.

NN, MM, AA, BB가 주어질 때 베라의 친구 사이에 삼각관계가 몇 개 있는지 구하라. 세 친구의 집합이 다르면 두 삼각관계는 서로 다르다.

입력

첫째 줄에 NN, MM, AA, BB가 공백으로 구분되어 주어진다.

제한:

  • 3≤N≤2000003 \le N \le 200000, 3≤M≤2000003 \le M \le 200000
  • 0<A<M0 < A < M, 0<B<M0 < B < M
  • NN, MM, AA, BB는 정수이다.
  • MM은 소수이다.

출력

삼각관계의 개수를 한 줄에 출력한다.

힌트

a→ba \to b는 친구 aa가 친구 bb를 짝사랑한다는 뜻이다.

첫 번째 예제에서 f(0,1)=g(2)=1f(0, 1) = g(2) = 1, f(0,2)=g(3)=2f(0, 2) = g(3) = 2, f(1,2)=g(2)=1f(1, 2) = g(2) = 1이다. 따라서 0→20 \to 2, 2→12 \to 1, 1→01 \to 0이고 삼각관계는 하나다.

두 번째 예제에서는 1→01 \to 0, 2→02 \to 0, 2→12 \to 1이므로 삼각관계가 없다.

예제3

  1. 예제 1

    입력
    3 5 3 4
    
    예상 출력
    1
    
  2. 예제 2

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

    입력
    1337 10007 1337 1337
    
    예상 출력
    99141170