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

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

철도

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

요약
단선 구간인 터널들이 있는 철도에서 두 방향 열차의 출발 시각이 주어질 때, 마주 오는 두 열차가 터널 내부에서 만나 충돌하는지 판정한다.
난이도

보통10점 중 7점

유형
수학, 이분 탐색, 정렬, 기하
정답자
아직 제출이 없습니다

문제

취리히와 루가노 사이에 길이 ss 킬로미터의 철도가 있다. 이 철도는 아름다운 알프스를 가로지르기 때문에 이동하는 동안 장관을 이루는 풍경을 볼 수 있다. 일부 고개는 철도가 지나가기에 너무 높기 때문에 선로에는 tt개의 터널이 있다. 그중 ii번째 터널은 취리히에서 aia_i 킬로미터 지점에서 시작해 취리히에서 bib_i 킬로미터 지점에서 끝난다. (따라서 ii번째 터널의 길이는 bi−aib_i - a_i이다.)

두 도시 사이를 오가는 철도 mm편의 시간표가 있다. 취리히에서 루가노로 가는 열차가 있는데, 그중 jj번째 열차는 cjc_j분에 출발하고, 루가노에서 취리히로 가는 열차가 nn편 있는데, 그중 kk번째 열차는 dkd_k분에 출발한다. 선로를 달리는 모든 열차는 방향과 터널 안에 있는지 여부에 관계없이 시속 11 킬로미터, 즉 분당 11 킬로미터의 일정한 속력으로 움직인다. 경로에는 역이 없고 열차는 신호기에서 멈추지 않는다. 따라서 각 열차는 정확히 ss분 만에 목적지에 도착한다.

열차의 길이는 철도의 길이에 비해 무시할 수 있으므로 이 문제에서는 각 열차를 철도를 따라 움직이는 점으로 간주한다.

보통 철도에는 각 방향마다 하나씩 두 개의 선로가 있다. 유일한 예외는 터널이다. 각 터널에는 양방향으로 사용할 수 있는 단일 선로만 있다.

반대 방향으로 가는 두 열차가 터널 밖에서 만나면 안전하게 서로 지나칠 수 있다. 이는 터널의 양 끝 중 한 곳에서 정확히 만나는 경우도 포함한다. 반면 한 쌍의 열차가 터널 내부에서 만나면 충돌한다.

터널과 열차 서비스에 대한 설명이 주어졌을 때 충돌이 발생하는지 판별하라.

입력

첫째 줄에는 공백으로 구분된 네 개의 정수 ss, tt, mm, nn이 주어진다. (1≤s≤1 000 000 0001 \le s \le 1\,000\,000\,000, 0≤t≤100 0000 \le t \le 100\,000, 0≤m,n≤2 0000 \le m, n \le 2\,000) 각각 선로의 길이, 터널의 개수, 취리히에서 출발하는 열차의 수, 루가노에서 출발하는 열차의 수이다.

둘째 줄에는 공백으로 구분된 tt개의 정수 aia_i가 주어진다. (0≤ai<s0 \le a_i < s) 터널의 시작 위치이다.

셋째 줄에는 공백으로 구분된 tt개의 정수 bib_i가 주어진다. (0<bi≤s0 < b_i \le s) 터널의 끝 위치이다.

11 이상 tt 이하의 각 ii에 대해 ai<bia_i < b_i이다. 또한 11 이상 t−1t-1 이하의 각 ii에 대해 bi<ai+1b_i < a_{i+1}이다. (즉, 각 터널의 길이는 양수이고, 터널들은 서로 겹치지 않으며, 취리히에서의 거리가 증가하는 순서로 주어진다.)

넷째 줄에는 공백으로 구분된 mm개의 정수 cjc_j가 주어진다. (0≤cj≤1 000 000 0000 \le c_j \le 1\,000\,000\,000) 취리히에서 출발하는 열차의 출발 시각(분)이다. 시각은 증가하는 순서로 주어지며, 모든 유효한 jj에 대해 cj<cj+1c_j < c_{j+1}이다.

다섯째 줄에는 공백으로 구분된 nn개의 정수 dkd_k가 주어진다. (0≤dk≤1 000 000 0000 \le d_k \le 1\,000\,000\,000) 루가노에서 출발하는 열차의 출발 시각(분)이다. 시각은 증가하는 순서로 주어지며, 모든 유효한 kk에 대해 dk<dk+1d_k < d_{k+1}이다.

출력

충돌이 한 번이라도 발생하면 "YES"를, 모든 열차가 안전하게 목적지에 도착하면 "NO"를 한 줄에 출력한다. (따옴표는 명확성을 위해 표시한 것이다.)

제한

마지막을 제외한 모든 소문제에서 ss의 값과 모든 cjc_j, dkd_k는 짝수이다.

힌트

첫 번째 예제에서 길이 100100 킬로미터의 선로에는 두 개의 터널이 있다. 하나는 취리히에서 2020에서 3030 킬로미터 지점, 다른 하나는 취리히에서 5050에서 6060 킬로미터 지점이다. 취리히에서 출발하는 유일한 열차는 다음과 같이 루가노에서 오는 모든 열차를 피한다.

  • 첫 번째 열차는 취리히에서 55 킬로미터 지점에서 만난다.
  • 두 번째 열차는 두 터널 사이 중간 지점에서 만난다.
  • 세 번째 열차는 루가노에서 1010 킬로미터 지점에서 만난다.
  • 네 번째 열차는 취리히 열차가 목적지에 도착한 한참 후에 출발한다.

두 번째 예제에서 유일한 두 열차는 유일한 터널의 정중앙에서 만나 충돌한다.

세 번째 예제에서 두 열차는 취리히에 더 가까운 터널의 끝에서 정확히 만난다. 네 번째 예제에서는 터널의 다른 쪽 끝에서 만난다. 두 경우 모두 문제없이 열차가 서로를 지나쳐 목적지에 안전하게 도착한다.

예제4

  1. 예제 1

    입력
    100 2 1 4
    20 50
    30 60
    120
    30 100 200 250
    
    예상 출력
    NO
    
  2. 예제 2

    입력
    1000 1 1 1
    600
    700
    100
    400
    
    예상 출력
    YES
    
  3. 예제 3

    입력
    1000 1 1 1
    600
    700
    100
    300
    
    예상 출력
    NO
    
  4. 예제 4

    입력
    1000 1 1 1
    600
    700
    100
    500
    
    예상 출력
    NO