부분집합
시간 제한1초메모리 제한128 MB
1부터 n까지의 수 중에서 어떤 수도 다른 수의 x배가 되지 않도록 k개를 고르는 경우의 수를 m으로 나눈 나머지를 구한다. n은 최대 10^18이다.
문제
집합 과 보다 큰 정수 가 주어진다. 이 집합의 부분집합 중에서 다음 성질을 만족하는 것을 생각하자: 모든 자연수 에 대해 와 가 동시에 에 속하지는 않는다. 즉, 어떤 를 잡더라도 와 중 적어도 하나는 에 들어 있지 않아야 한다.
이 조건을 만족하면서 원소가 정확히 개인 부분집합의 개수를 구하라. 이 개수는 매우 클 수 있으므로, 그 값을 으로 나눈 나머지를 출력한다.
입력
한 줄에 네 정수 , , , 가 공백 하나로 구분되어 주어진다.
출력
조건을 만족하는 원소 개짜리 부분집합의 개수를 으로 나눈 나머지를 한 줄에 출력한다.
힌트
, , 인 경우 조건을 만족하는 부분집합은 다음 개이다: , , , , , , , , .