합이 K인 수 쌍

서로 다른 값을 가진 수열에서 합이 K가 되는 쌍의 개수를 센다. 순서는 상관없고 각 원소는 한 번만 쓴다.

쉬움3배열해시맵투 포인터정렬면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

서로 다른 정수 NN개로 이루어진 수열이 주어진다. 이 수열에서 두 원소를 골라 더했을 때 합이 KK가 되는 쌍이 몇 개인지 센다.

쌍은 서로 다른 두 위치의 원소로 이루어지고, 순서는 구분하지 않는다. 즉 (1,6)(1, 6)(6,1)(6, 1)은 같은 쌍이다. 같은 원소를 두 번 사용하는 것은 허용하지 않으므로, KK가 짝수이고 K/2K/2가 수열에 있어도 그 값 하나만으로는 쌍이 되지 않는다.

수열이 1,2,3,4,5,61, 2, 3, 4, 5, 6인 경우 K=7K = 7이면 (1,6)(1, 6), (2,5)(2, 5), (3,4)(3, 4)가 조건을 만족하므로 답은 33이고, K=5K = 5이면 (1,4)(1, 4)(2,3)(2, 3)이 조건을 만족하므로 답은 22이다.

입력

첫째 줄에 수열의 길이 NN과 목표 합 KK가 공백으로 구분되어 주어진다.

둘째 줄에 수열의 원소 NN개가 공백으로 구분되어 주어진다.

1N10001 \le N \le 1\,000이고, 원소는 모두 서로 다르며 11 이상 10610^6 이하의 정수이다. KK11 이상 2×1062 \times 10^6 이하의 정수이다.

출력

합이 KK인 쌍의 개수를 정수 하나로 출력한다.