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

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

ACM 지하철

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

요약
지하철 노선들과 그 위에 서 있는 경찰, 두 지점이 주어질 때, 환승 지점과 노선 위 경찰 위치에서 검사받지 않고 목적지에 도달할 수 있는지 판정한다.
난이도

어려움10점 중 8점

유형
기하, 그래프, BFS, 구현
정답자
아직 제출이 없습니다

문제

ACM은 여러 철도 구간으로 이루어진 특별한 지하철 시스템을 가진 도시다. 각 구간을 노선이라고 부른다. 모든 노선에는 양방향으로 열차가 다닌다. 두 노선은 서로 교차할 수 있으며, 교차점에서는 승객이 한 노선의 열차에서 다른 노선의 열차로 갈아탈 수 있다.

여행의 출발지와 도착지는 모두 지하철 노선 위 어딘가에 있다. 출발지가 놓인 노선에서 승차하고, 두 노선의 교차점에서만 노선을 바꿀 수 있으며, 도착지에 이를 때까지 이동한다. 목표는 표를 한 장도 사지 않고, 즉 무임으로 전체 여행을 마치는 것이다.

문제는 표를 검사하는 경찰들이며, 이들에게 절대로 표 검사를 당해서는 안 된다. 표 검사를 당하는 경우는 정확히 두 가지다.

  • 교차점에서, 단 그곳에서 실제로 노선을 갈아탈 때만. 교차점에 서 있는 경찰은 그 지점에서 노선을 바꿀 때만 표를 검사한다. 같은 노선을 유지한 채 그냥 지나가면 검사하지 않는다.
  • 노선을 따라 이동하는 중에, 교차점이 아닌 노선 위에 서 있는 경찰의 정확한 위치를 지나갈 때. 그런 경찰은 자기 위치를 지나는 모든 사람을 검사한다.

어느 노선에도 있지 않은 경찰은 무시한다. 모든 경찰의 위치는 미리 알고 있다.

예를 들어 위 그림에는 지하철 노선 5개와 경찰 3명(검은 원)이 있다. ss에서 dd까지는 노선 l1→l4l_1 \rightarrow l_4을 따라 어떤 경찰도 만나지 않고 갈 수 있지만, ss에서 d′d'까지는 검사를 당하지 않고 갈 수 있는 방법이 없다.

지하철 노선, 경찰, 그리고 출발지와 도착지를 입력받아, 어떤 경찰에게도 검사당하지 않고 출발지에서 도착지까지 갈 수 있는지 판정하는 프로그램을 작성하라.

입력

첫 줄에는 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 다음과 같은 형식이다.

  • 정수 두 개 nn과 mm (1≤m≤1001 \le m \le 100, 1≤n≤30001 \le n \le 3000)이 있는 한 줄: 지하철 노선의 수와 경찰의 수.
  • 정수 네 개 xs ys xd ydx_s\ y_s\ x_d\ y_d가 있는 한 줄: 출발지 (xs,ys)(x_s, y_s)와 도착지 (xd,yd)(x_d, y_d)의 좌표. 두 점은 반드시 지하철 노선 위에 있다.
  • nn개의 줄: 각 줄에는 정수 네 개 x1 y1 x2 y2x_1\ y_1\ x_2\ y_2가 있으며, 한 지하철 노선의 두 끝점 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2)를 나타낸다.
  • mm개의 줄: 각 줄에는 정수 두 개 x yx\ y가 있으며, 경찰 한 명의 위치를 나타낸다.

모든 좌표는 임의의 정수다.

출력

입력과 같은 순서로 각 테스트 케이스마다 한 줄씩, 총 TT줄을 출력한다. 각 테스트 케이스에 대해 검사당하지 않고 출발지에서 도착지까지 갈 수 있으면 YES를, 그렇지 않으면 NO를 한 단어로 출력한다.

예제6

  1. 예제 1

    입력
    2
    4 2
    3 2 5 8
    3 2 3 6
    8 1 5 8
    7 7 2 2
    9 2 1 6
    3 4
    6 6
    3 2
    2 3 6 3
    1 3 7 3
    3 2 3 6
    1 5 7 2
    3 4
    4 3
    
    예상 출력
    YES
    NO
    
  2. 예제 2

    입력
    1
    1 0
    0 0 10 0
    0 0 10 0
    
    예상 출력
    YES
    
  3. 예제 3

    입력
    1
    1 1
    0 0 10 0
    0 0 10 0
    5 0
    
    예상 출력
    NO
    
  4. 예제 4

    입력
    1
    3 1
    0 0 10 0
    0 0 10 0
    2 0 5 5
    5 5 8 0
    5 0
    
    예상 출력
    YES
    
  5. 예제 5

    입력
    1
    2 1
    0 0 10 0
    0 0 10 0
    5 -5 5 5
    5 0
    
    예상 출력
    YES
    
  6. 예제 6

    입력
    1
    2 0
    0 0 5 5
    0 0 10 0
    5 -5 5 5
    
    예상 출력
    YES