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

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

버스

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

요약
출발 시각과 도착 시각이 정해진 편도 버스들이 있을 때, 각 질의 마감 시각 L마다 정류장 N에 L까지 도착하려면 정류장 1을 늦어도 언제 떠나야 하는지 구하거나 불가능하면 -1을 출력한다.
난이도

어려움10점 중 8점

유형
그래프, 정렬, 동적 계획법, 이분 탐색
정답자
아직 제출이 없습니다

문제

대학생 JOI는 버스로 통학한다. JOI의 집과 JOI가 다니는 대학은 모두 IOI시에 있다. IOI시에는 NN개의 버스 정류장이 있고 11부터 NN까지 번호가 붙어 있다. JOI의 집에서 가장 가까운 정류장은 버스 정류장 11이고, 대학에서 가장 가까운 정류장은 버스 정류장 NN이다.

IOI시를 다니는 버스는 MM대이고, 각 버스는 하루에 한 번 정해진 시각에 정해진 정류장을 출발해 정해진 시각에 정해진 정류장에 도착한다. 날짜를 넘겨 운행하는 버스는 없다. JOI는 버스에 도중에 타거나 버스에서 도중에 내릴 수 없다.

JOI는 매일 버스를 한 대 이상 갈아타며 대학에 간다. JOI가 버스를 갈아타는 데 걸리는 시간은 무시할 수 있다. 즉 어떤 시각에 어떤 정류장을 출발하는 버스로 갈아타려면 그 버스의 출발 시각 또는 그 이전에 그 정류장에 도착해 있으면 된다. 같은 정류장을 여러 번 이용해도 된다.

이런 조건에서 JOI는 언제 집을 나서야 수업에 늦지 않게 대학에 도착할 수 있는지 알고 싶어 한다. 대학의 하루 첫 수업 시작 시각은 날마다 다르다. 어떤 QQ일 동안 그날의 수업에 늦지 않으려면 버스 정류장 NN에 언제까지 도착해야 하는지가 주어진다. 각 날에 대해 JOI는 늦어도 언제까지 버스 정류장 11에 도착해야 수업에 늦지 않을까?

버스 운행 정보가 주어진다. 또한 어떤 QQ일 동안 버스 정류장 NN에 언제까지 도착해야 하는지가 주어지므로, 각각에 대해 JOI가 늦어도 언제까지 버스 정류장 11에 도착해야 하는지 구하라.

입력

표준 입력에서 다음 입력을 읽는다.

  • 첫 줄에는 두 정수 N,MN, M이 공백을 구분으로 쓰여 있고, IOI시에 NN개의 버스 정류장이 있고 MM대의 버스가 다닌다는 것을 나타낸다.
  • 이어지는 MM줄 중 ii번째 줄 (1≤i≤M1 \le i \le M)에는 네 정수 Ai,Bi,Xi,YiA_i, B_i, X_i, Y_i (1≤Ai≤N1 \le A_i \le N, 1≤Bi≤N1 \le B_i \le N, Ai≠BiA_i \ne B_i)가 공백을 구분으로 쓰여 있다. 이는 ii번째 버스가 버스 정류장 AiA_i를 시각 XiX_i에 출발해 버스 정류장 BiB_i에 시각 YiY_i에 도착한다는 것을 나타낸다. 시각은 오전 0시 정각부터 경과한 시간을 밀리초 단위로 나타낸 것이다.
  • 다음 줄에는 정수 QQ가 쓰여 있다. 이는 버스 정류장 NN에 언제까지 도착해야 하는지가 주어지는 날이 QQ일이라는 것을 나타낸다.
  • 이어지는 QQ줄 중 jj번째 줄 (1≤j≤Q1 \le j \le Q)에는 정수 LjL_j가 쓰여 있다. 이는 jj번째 날에는 버스 정류장 NN에 시각 LjL_j까지 도착해야 한다는 것을 나타낸다.

출력

표준 출력에 QQ줄을 출력한다. jj번째 줄 (1≤j≤Q1 \le j \le Q)에 jj번째 날 JOI가 늦어도 언제까지 버스 정류장 11에 도착해야 하는지를 나타내는 정수를 출력한다. 수업에 늦지 않게 대학에 도착하는 것이 불가능할 때는 -1을 출력한다.

제한

  • 2≤N≤100 0002 \le N \le 100\,000.
  • 1≤M≤300 0001 \le M \le 300\,000.
  • 0≤Xi<Yi<86 400 0000 \le X_i < Y_i < 86\,400\,000 (=24×60×60×1000= 24 \times 60 \times 60 \times 1000) (1≤i≤M1 \le i \le M).
  • 1≤Q≤100 0001 \le Q \le 100\,000.
  • 0≤Lj<86 400 0000 \le L_j < 86\,400\,000 (=24×60×60×1000= 24 \times 60 \times 60 \times 1000) (1≤j≤Q1 \le j \le Q).

예제2

  1. 예제 1

    입력
    5 6
    1 2 10 25
    1 2 12 30
    2 5 26 50
    1 5 5 20
    1 4 30 40
    4 5 50 70
    4
    10
    30
    60
    100
    
    예상 출력
    -1
    5
    10
    30
    
  2. 예제 2

    입력
    3 8
    1 2 1 5
    1 3 0 1
    1 3 2 8
    2 3 2 3
    2 3 3 4
    2 3 4 5
    2 3 5 6
    2 3 6 7
    6
    3
    4
    5
    6
    7
    8
    
    예상 출력
    0
    0
    0
    1
    1
    2