만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

특별한 정수쌍 세기

면접 대비

시간 제한1초메모리 제한512 MB

요약
배열 A와 B가 주어졌을 때, Z(i, j)가 D 이하인 쌍의 개수가 K가 되는 가장 작은 D를 구합니다. 그런 D가 없으면 -1을 출력합니다.
난이도

보통10점 중 5점

유형
이분 탐색, 정렬, 투 포인터
정답자
아직 제출이 없습니다

문제

Albert는 정수 배열을 이용해 특별한 정수쌍을 세는 놀이를 즐긴다. 먼저 길이가 NN인 정수 배열 AA, BB를 임의로 고른다. 그다음 1≤i<j≤N1 \le i \lt j \le N인 정수 i,ji, j마다 다음 값을 정의한다.

X(i,j)=Ai−AjX(i, j) = A_i - A_j, Y(i,j)=Bi−BjY(i, j) = B_i - B_j, Z(i,j)=∣X(i,j)−Y(i,j)∣Z(i, j) = |X(i, j) - Y(i, j)|

ZZ를 이용해 C(D)=∣{(i,j):Z(i,j)≤D}∣C(D) = |\{(i, j) : Z(i, j) \le D\}|를 정의한다. 즉 C(D)C(D)는 Z(i,j)Z(i, j)가 DD 이하인 특별한 정수쌍 (i,j)(i, j)의 개수다. 단, 1≤i<j≤N1 \le i \lt j \le N인 쌍만 고려한다.

AA, BB, DD가 주어졌을 때 C(D)C(D)를 계산하는 것은 쉬우므로, Albert는 새로운 놀이를 생각했다. 정수 KK가 주어졌을 때 C(D)=KC(D) = K가 되는 DD가 존재하는지 판별하고, 존재한다면 그중 가장 작은 DD를 찾는다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스의 첫 줄에는 NN과 KK가 주어진다. 둘째 줄에는 배열 AA의 정수 NN개가 공백으로 구분되어 주어진다. 셋째 줄에는 배열 BB의 정수 NN개가 공백으로 구분되어 주어진다.

출력

각 테스트 케이스의 정답을 한 줄에 하나씩 출력한다. 조건을 만족하는 DD가 없으면 -1을 출력한다.

제한

  • 1≤T≤51 \le T \le 5
  • 2≤N≤500002 \le N \le 50000
  • 0≤K≤N×(N−1)/20 \le K \le N \times (N-1) / 2
  • 1≤i≤N1 \le i \le N인 모든 ii에 대하여 0≤Ai,Bi≤1050 \le A_i, B_i \le 10^5

예제2

  1. 예제 1

    입력
    5
    5 2
    2 4 6 4 2
    9 1 3 7 5
    5 4
    2 4 6 4 2
    9 1 3 7 5
    5 6
    2 4 6 4 2
    9 1 3 7 5
    5 8
    2 4 6 4 2
    9 1 3 7 5
    5 10
    2 4 6 4 2
    9 1 3 7 5
    
    예상 출력
    0
    4
    -1
    6
    10
    
  2. 예제 2

    입력
    1
    9 18
    1 2 3 4 5 4 3 2 1
    5 4 3 2 1 2 3 4 5
    
    예상 출력
    2