팀 나누기
시간 제한2초메모리 제한512 MB
n명의 학생을 정확히 k개의 번호 없는 팀으로 나누되, 임의의 두 팀이 실력값 기준 임계값으로 분리되도록 하는 경우의 수를 센다.
문제
에밋 브라운 박사는 직업을 바꿔 고등학교에서 컴퓨터 과학을 가르친다. 박사가 맡은 반에는 학생이 명 있고, 박사는 학생들을 위해 프로그래밍 대회를 열려고 한다. 그런데 교실에 컴퓨터가 대뿐이라 팀 대회로 열어야 한다.
박사는 실력이 비슷한 학생끼리 한 팀이 되어야 협동이 잘된다고 생각한다. 박사는 각 학생의 실력 를 알고 있다. 박사는 어떤 두 팀을 골라도 다음을 만족하는 수 가 존재하도록 팀을 나누려고 한다. 한 팀의 학생은 모두 실력이 이하이고, 다른 팀의 학생은 모두 실력이 이상이다. 팀은 정확히 개여야 하고, 각 팀에는 학생이 한 명 이상 있어야 한다. 한 팀의 인원수에 상한은 없다.
팀을 나누는 방법이 몇 가지인지 구하라. 팀에는 번호가 없다. 어떤 두 학생이 한 방법에서는 같은 팀이고 다른 방법에서는 서로 다른 팀이면, 두 방법은 서로 다르다. 답을 로 나눈 나머지를 구한다.
입력
첫째 줄에 반의 학생 수 과 만들어야 하는 팀의 개수 가 공백으로 구분되어 주어진다. ()
둘째 줄에 학생 명의 실력 가 공백으로 구분되어 주어진다. ()
출력
팀을 나누는 방법의 수를 로 나눈 나머지를 한 줄에 출력한다.