만드는 중입니다

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

토끼와 거북이

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

요약
스탠이 자기 경로의 노드에서 최단 경로로 갈아타고도 조지를 이길 수 있는 노드의 번호를 구합니다.
난이도

보통10점 중 7점

유형
최단 경로, 누적 합, 그래프
정답자
아직 제출이 없습니다

문제

토끼 스탠(Stan)과 거북이 조지(George)가 노드 NN개와 간선 MM개로 이루어진 그래프에서 경주한다. 경주는 노드 1에서 시작해 노드 NN에서 끝난다. 두 선수는 미리 각자 경로를 정했고, 그래프와 두 경로, 그리고 각 간선을 건너는 데 걸리는 시간을 모두 알고 있다.

조지는 자신의 경로에서 몇 개의 노드를 골라 그곳에서 잠시 잔다. 조지가 스탠의 반칙을 알아채면 잠을 멈추고 곧장 결승선으로 달린다.

스탠은 약속을 지킬 생각이 없다. 어떤 노드에서 배정받은 경로를 버리고 노드 NN까지 가장 짧은 경로로 바꾸려 한다. 경로는 노드에 있을 때만 바꿀 수 있고, 간선 위에서는 바꿀 수 없다. 조지가 깨어 있을 때 스탠이 반칙하면 조지는 즉시 알아챈다. 조지가 자고 있다면 깨어난 뒤에 알아챈다.

스탠이 경로를 바꾸고도 이길 수 있는 시점의 개수를 구하라.

입력

첫 줄에 NN과 MM이 주어진다. 이어지는 MM개의 줄에는 AA, BB, TT, RR이 주어지며, 노드 AA에서 노드 BB로 가는 간선이 있다는 뜻이다. 조지는 이 간선을 TT의 시간에 건너고, 스탠은 RR의 시간에 건넌다. ii번째 간선의 번호는 ii이다.

다음 줄에는 조지의 경로에 있는 노드 수 PTP_T가 주어진다. 이어지는 PTP_T개의 줄에는 조지가 다음에 사용할 간선 번호와, 그 간선을 건넌 뒤 잘 잠의 길이가 주어진다. 마지막 간선의 잠 시간은 조지가 결승선에 도착하므로 의미가 없다.

다음 줄에는 스탠의 처음 경로에 있는 간선 수 PRP_R이 주어진다. 마지막 줄에는 스탠이 사용하는 간선 번호 PRP_R개가 순서대로 주어진다.

출력

첫 줄에 스탠이 반칙할 수 있는 시점의 수 xx를 출력한다. 둘째 줄에는 그 xx개의 노드 번호를 오름차순으로 출력한다.

제한

  • 2≤N≤1000002 \le N \le 100000
  • 1≤PR,PT<1000001 \le P_R, P_T < 100000
  • 1≤M≤2000001 \le M \le 200000
  • 1≤T,R≤10000000001 \le T, R \le 1000000000
  • 0≤sleep≤10000000000 \le \text{sleep} \le 1000000000
  • 경로를 설명하는 간선은 올바른 순서로 주어진다.
  • 조지의 경로에 있는 노드는 반복되지 않는다.
  • 스탠의 경로에 있는 노드는 반복되지 않는다.
  • 두 선수가 같은 시각에 결승선에 도착하면 스탠이 이긴다.
  • 스탠이 조지가 잠드는 바로 그 순간에 반칙하면, 조지는 먼저 잠든 뒤 깨어나서야 반칙을 알아챈다.
  • 스탠은 원래 경로를 벗어나고, 새 경로가 원래 나머지 경로보다 엄격하게 빠를 때에만 반칙으로 본다.
  • 반칙 경로는 원래 경로와 노드를 공유할 수 있다. 반칙하는 순간에는 원래 경로와 다른 간선을 택해야 한다. 간선이 허용하면 이전 노드로 되돌아가도 된다.

예제2

  1. 예제 1

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

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