문제
메이플스토리 무릉도장에서 수련을 하던 소공은 N 마리의 몬스터가 있는 일자 지형 맵에 가만히 서서 몰이 사냥을 하고자 한다. 맵이 일자 지형으로 생겼으므로 맵 내 임의의 위치를 수 하나로 표현할 수 있다. 편의상 몬스터는 항상 정수 위치에만 있으며, 어떠한 순간에도 서로 다른 몬스터는 같은 위치에 있을 수 없다.
맵 상 N 마리의 몬스터에게 1부터 N까지 서로 다른 정수 번호가 매겨져 있다. i 번 (1≤i≤N) 몬스터의 위치는 di 다.
소공은 체인 라이트닝 스킬을 사용하여 몬스터를 사냥하려고 한다. 체인 라이트닝 스킬은 처음 지정한 몬스터에서 시작하여 양 옆으로 정확히 1 차이나는 위치에 있는 몬스터에 전격이 옮겨지며, 이 과정이 더 이상 전격이 옮겨질 몬스터가 없어질 때까지 반복된다. 예를 들어, 각 몬스터의 위치가 [1, 3, 4, 5, 6, 9, 10] 라고 하자. 소공이 위치 4에 있는 몬스터에게 체인 라이트닝을 사용하면, 최종적으로 위치 3부터 위치 6에 있는 몬스터까지 총 4 마리의 몬스터를 공격하게 된다. 또한, 위치 9에 있는 몬스터에게 체인 라이트닝을 사용하면, 최종적으로 위치 9부터 위치 10에 있는 몬스터까지 총 2 마리의 몬스터를 공격하게 된다.
소공은 최대한 많은 수의 몬스터를 공격하고 싶기 때문에, 비용을 들여 몬스터의 위치를 옮기려고 한다. 1 메소를 사용하여 몬스터의 위치를 1 감소시키거나, 1 증가시킬 수 있다. 몬스터가 이동한 후에도 위치는 항상 정수이어야 하며, 서로 다른 몬스터는 같은 위치에 있을 수 없다.
소공은 현재 B 메소를 가지고 있다. 최대 B 메소를 사용하여, 한 번의 스킬 사용으로 최대한 많은 몬스터를 공격할 수 있도록 몬스터의 위치를 재배열해보자.
입력
첫 줄에 몬스터의 수를 나타내는 정수 N과 소공의 재산을 나타내는 정수 B가 공백으로 구분되어 주어진다. (1≤N≤1,000,000; 0≤B≤1018)
두 번째 줄에 각 몬스터의 위치를 나타내는 N 개의 정수가 공백으로 구분되어 주어진다. i 번째로 주어지는 수는 i 번 몬스터의 위치를 나타내는 수 di 이다. (1≤di≤1,000,000,000; di<di+1)
출력
최대 B 메소를 사용하여, 최대한 많은 몬스터를 공격하도록 몬스터를 재배열했을 때 한 번의 스킬 사용으로 공격할 수 있는 몬스터의 수를 출력한다.
부분문제
| 번호 | 점수 | 조건 |
|---|---|---|
| #1 | 13점 | N≤100; di ≤1,000 |
| #2 | 14점 | N≤400 |
| #3 | 32점 | N≤2,000 |
| #4 | 41점 | 추가적인 제한 조건이 없음. |
예제 #1
7 4
1 5 6 8 11 14 15
4
예제 #2
7 3
1 5 6 8 11 14 15
3