두 수의 합

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

서로 다른 정수들의 집합 S={a1,a2,,an}S = \{a_1, a_2, \ldots, a_n\} 와 또 다른 정수 KK 가 주어진다. SS 에서 서로 다른 두 정수를 골라 더했을 때, 그 합이 KK 에 가장 가까운 두 정수의 쌍을 생각하자. 여기서 '가장 가깝다'는 것은 두 정수의 합과 KK 의 차이의 절댓값이 최소가 됨을 뜻한다.

예를 들어 1010 개의 정수

S={7,9,2,4,12,1,5,3,2,0}S = \{-7, 9, 2, -4, 12, 1, 5, -3, -2, 0\}

가 주어졌을 때, K=8K = 8 에 합이 가장 가까운 쌍은 {12,4}\{12, -4\} 하나뿐이다 (합이 정확히 88). K=4K = 4 인 경우에는 합과 KK 의 차이가 11 로 최소가 되는 쌍이 {7,12},{9,4},{5,2},{5,0},{1,2}\{-7, 12\}, \{9, -4\}, \{5, -2\}, \{5, 0\}, \{1, 2\} 의 다섯 가지가 있다.

서로 다른 정수들과 정수 KK 가 주어질 때, 서로 다른 두 정수의 합이 KK 에 가장 가까운 쌍이 몇 개인지 세는 프로그램을 작성하시오.

입력

입력은 표준 입력으로 주어진다. 첫 번째 줄에 테스트 케이스의 개수 tt 가 주어진다. 이어서 각 테스트 케이스는 두 줄로 이루어진다.

각 테스트 케이스의 첫 번째 줄에는 두 정수 nnKK 가 공백으로 구분되어 주어진다 (2n1062 \le n \le 10^6, 108K108-10^8 \le K \le 10^8). 두 번째 줄에는 서로 다른 nn 개의 정수가 공백으로 구분되어 주어지며, 각 정수는 108-10^8 이상 10810^8 이하이다.

출력

각 테스트 케이스마다 한 줄에 하나씩, 입력된 순서대로 결과를 출력한다. 각 줄에는 주어진 nn 개의 정수 중 서로 다른 두 정수의 합이 KK 에 가장 가까운 쌍의 개수를 출력한다.