#768
Gold II
서로 다른 수 만들기
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

민영이는 11 이상 NN 이하의 정수로 이루어진 길이 NN의 수열 a1,a2,,aNa_1, a_2, \cdots, a_N00이 아닌 정수 KK를 가지고 있다. (1N21051 \le N \le 2 \cdot 10^5; NKN,K0-N \le K \le N, K \neq 0)

민영이는 수열의 모든 원소를 서로 다르게 만들고 싶어 한다. 이를 위해 다음과 같은 연산을 원하는 만큼 수행할 수 있다(연산을 수행하지 않아도 된다).

  • 인덱스 ii를 선택하여 aia_i의 값을 ai+Ka_i + K로 바꾼다.

수열의 모든 원소가 서로 다르게 되도록 하기 위해 필요한 최소 연산 횟수를 구하시오.

입력

입력은 TT개의 독립적인 테스트 케이스로 구성된다. (1T101 \le T \le 10)

각 테스트 케이스의 첫째 줄에는 NNKK가 공백으로 구분되어 주어진다.

둘째 줄에는 NN개의 정수 a1,a2,,aNa_1, a_2, \dots, a_N이 공백으로 구분되어 주어진다.

모든 테스트 케이스에 대한 NN의 합은 10000001\,000\,000을 넘지 않는다.

출력

각 테스트 케이스마다 수열의 모든 원소를 서로 다르게 만들기 위한 최소 연산 횟수를 한 줄에 하나씩 출력한다.

참고: 이 문제에서 다루는 정수의 크기가 매우 클 수 있으므로, C/C++의 long long과 같은 64비트 정수 자료형을 사용하는 것을 권장한다.

예제 입력 1

4
4 1
4 1 4 1
4 -3
4 1 4 1
4 4
4 1 4 1
3 -1
1 1 2

예제 출력 1

2
4
2
1

점수

  • 테스트 케이스 2~4: N50N \le 50
  • 테스트 케이스 5~7: N2000N \le 2000
  • 테스트 케이스 8~10: K=1K = 1
  • 테스트 케이스 11~13: 추가 제약 조건 없음.
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Gold II1명 투표· 약 1개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.