아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

도시 건설

시간 제한3초메모리 제한1024 MB

요약
각 이동에서 새로 짓는 벽의 길이가 m을 넘지 않도록 정착지를 차지하는 순서가 있는지 판별합니다.
난이도

어려움10점 중 8점

유형
기하, 그리디, 정렬
정답자
아직 제출이 없습니다

문제

최근 당신은 "Build a City"라는 게임에 빠지게 되었다.

이 게임은 2차원 지도에서 진행된다. 지도에는 0부터 nn까지 번호가 붙은 n+1n+1개의 인간 정착지가 있으며, 정착지 ii의 좌표는 (xi,yi)(x_i, y_i) (i=0,1,…,ni=0, 1, \ldots, n)이다. 정착지 0은 원점에 있으므로 x0=y0=0x_0=y_0=0이다.

당신의 도시는 좌표축에 평행한 변을 가진 벽으로 이루어진 직사각형이다. 정착지가 직사각형 안이나 경계 위에 있으면 도시가 그 정착지를 포함한다고 한다.

처음에 도시는 정착지 0을 포함하며, 원점에 있는 퇴화된 직사각형이다. 한 번의 이동에서 아직 점유되지 않은 정착지 하나를 얻고, 벽을 세워 그 정착지를 도시 안에 넣는다. 새 도시는 기존 도시가 포함하던 영역과 새로 얻은 정착지를 모두 포함하는 가장 작은 좌표축 평행 직사각형이다. 목표는 모든 정착지를 도시 안에 넣는 것이다.

도시 인프라 부서는 한 번의 이동에서 총 길이가 mm 이하인 벽만 세울 수 있다. 기존 벽은 재사용할 수 있지만, 다른 곳에 놓을 수는 없다. 따라서 한 번의 이동에서 세우는 벽의 길이는 새 직사각형의 둘레에서 기존 직사각형과 새 직사각형의 겹치는 부분 길이를 뺀 값이다. 새로 얻은 정착지가 이미 도시 안에 있으면 세우는 벽의 길이는 0이다.

이제 모든 정착지를 얻는 순서가 존재하는지 알고 싶다. 각 이동에서 세우는 벽의 총 길이가 mm을 넘지 않아야 한다.

입력

입력의 첫 줄에는 테스트 케이스의 수 TT (1≤T≤5⋅1051 \leq T \leq 5 \cdot 10^5)가 주어진다. 각 테스트 케이스는 다음과 같다.

첫 줄에 아직 점유되지 않은 정착지의 수 nn과 한 번의 이동에서 세울 수 있는 벽의 총 길이의 최댓값 mm이 주어진다 (1≤n≤5⋅1051 \leq n \leq 5 \cdot 10^5, 1≤m≤4⋅1091 \leq m \leq 4 \cdot 10^9).

이어지는 nn개의 줄 중 ii번째 줄에는 정착지 ii의 좌표 xix_i와 yiy_i가 주어진다 (1≤xi,yi≤1091 \leq x_i, y_i \leq 10^9).

모든 테스트 케이스의 nn을 합하면 5⋅1055 \cdot 10^5을 넘지 않는다.

출력

각 테스트 케이스마다 그러한 순서가 존재하면 Yes, 존재하지 않으면 No를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    3
    3 6
    1 1
    4 1
    2 2
    4 9
    1 4
    2 3
    3 2
    4 1
    10 14
    10 8
    1 6
    2 5
    4 2
    5 5
    8 9
    2 7
    6 8
    6 5
    7 4
    
    예상 출력
    Yes
    No
    Yes