결계 배치하기
시간 제한1초메모리 제한1024 MB
수직선 위에 M개의 결계를 배치해 N개의 에너지원이 각 결계마다 정확히 N/M개씩 충돌하도록 하는 배치의 수를 998244353으로 나눈 나머지를 구한다.
문제
영문을 모르겠어!
∧ ∧
↙( ◕ ‿‿ ◕ )↘
이상 이하의 정수들을 좌표로 가지는 수직선 위에 개의 에너지원이 각각 위치에 있다. 큐베는 이 수직선 위에 결계들을 적절히 배치하여, 에너지원들이 결계와 충돌하게끔 해 이때 발산되는 에너지를 모으는 일을 한다. 큐베는 (은 의 약수)개의 서로 다른 오름차순 정수 을 선택하여 그 위치들에 동시에 결계를 설치하려고 한다. 에너지원이 있는 위치에도 결계를 배치할 수 있다.
결계에는 에너지원들을 유인하는 효과가 있어서, 각 에너지원들은 좌표의 차가 가장 작은 결계로 이동하여 충돌한다. 만약 그러한 결계가 둘이라면 좌표가 더 작은 결계로 이동하여 충돌한다.
큐베는 안정성을 위해 각 결계가 정확히 개씩의 에너지원과만 충돌하게끔 결계를 배치하려고 한다. 가능한 모든 미래에서 큐베가 서로 다른 순서쌍 을 선택하는 경우의 수를 계산해 주자.
입력
첫 번째 줄에 세 정수 , , 가 공백으로 구분되어 주어진다. (은 의 약수)
두 번째 줄에 개의 정수 이 공백으로 구분되어 주어진다.
출력
큐베가 서로 다른 순서쌍 을 선택하는 경우의 수를 으로 나눈 나머지를 출력한다.
힌트
어떤 두 순서쌍 과 )이 서로 다르다는 것은 인 가 존재함과 동치이다.