토너먼트 시드 배정
면접 대비시간 제한1초메모리 제한1024 MB
플레이어 2^n명의 레이팅과 기준값 k가 주어졌을 때, 높은 레이팅 선수가 항상 이기는 토너먼트에서 차이가 k 이하인 경기의 최대 개수를 구합니다.
문제
1대1 게임의 단판 토너먼트 대진표를 짜야 한다. 등록한 선수 수는 정확히 의 거듭제곱이고, 우승자를 가리는 데 필요한 라운드 수와 같은 수의 라운드가 열린다. 각 선수는 고유한 숫자 레이팅을 가지며, 두 선수가 맞붙으면 레이팅이 높은 선수가 항상 이긴다. 대회를 최대한 흥미롭게 만들고 싶으므로 다음 조건을 만족해야 한다.
- 레이팅 상위 2명은 결승에, 상위 4명은 준결승에, 상위 8명은 8강에 나온다. 이런 식으로 계속된다. 레이팅이 가장 높은 경기는 맨 마지막에 열린다.
- 위 조건을 지키는 범위에서 "접전" 경기가 최대한 많아야 한다. 두 선수의 레이팅 차이가 기준값 이하이면 그 경기를 "접전"이라고 한다.
라운드 수, 접전 기준값, 선수들의 레이팅이 주어졌을 때 위 조건을 지키면서 가능한 접전 경기 수의 최댓값을 구하시오.
입력
첫 줄에 정수 ()과 ()가 주어진다. 은 라운드 수이고, 는 경기가 접전이 되는 레이팅 차이다.
이후 개의 줄에 선수의 레이팅 ()이 한 개씩 주어진다. 레이팅은 모두 서로 다르다.
출력
위 조건을 만족하는 토너먼트에서 가능한 접전 경기 수의 최댓값을 한 줄에 출력한다.