만드는 중입니다

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

자취방 정하기

면접 대비

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

요약
간선 비용의 기댓값으로 학교(1번)까지 걸리는 시간이 T 이하가 되는 방 번호를 모두 찾습니다.
난이도

보통10점 중 6점

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

문제

새내기 현서는 이번 학기에도 고민이 많다. 가장 큰 고민은 아침 수업이 많아서 수업 시간에 맞춰 강의실에 도착하지 못할 것 같다는 점이다. 고민 끝에 현서는 학교 주변에 자취방을 하나 구하기로 했다.

학교 주변은 정점이 NN개, 간선이 MM개인 그래프로 표현된다. 학교는 1번 정점에 있고, 나머지 정점에는 현서가 계약할 수 있는 자취방이 하나씩 있다. 간선은 학교와 자취방, 또는 자취방과 자취방 사이의 도로를 나타낸다. 도로는 양방향으로 모두 사용할 수 있다.

각 도로는 교통량이라는 값을 가진다. 교통량이 xx인 도로를 통과하는 데에는 양방향 모두 xx분이 걸린다. 여러 사건 때문에 각 도로의 교통량은 매번 일정하지 않다. 구체적으로 ii번 도로의 교통량은 절반의 확률로 aia_i, 나머지 절반의 확률로 bib_i가 된다. 교통량은 각 도로마다 독립적으로 정해지며, 현서가 길을 지날 때마다 바뀔 수 있다. aia_i 또는 bib_i는 음수일 수도 있다. 이 경우에는 도로를 통과할 때 시간이 거꾸로 흐른다고 생각하면 된다.

1번 정점을 제외한 모든 정점 ii에 대해, WiW_i를 ii번 정점에서 1번 정점으로 가는 모든 가능한 이동의 집합이라고 하자.

  • ss에서 ee로의 이동은 ss에서 출발하여 연결된 간선만을 따라 움직여 ee에 도착하는 것이다.
  • 이동에서는 같은 간선을 여러 번 사용하는 것도 허용된다. 도착 정점인 1번 정점에 도달했다고 해서 반드시 멈출 필요는 없다.

모든 2≤i≤N2 \le i \le N에 대해 함수 fi:Wi→Rf_i : W_i \to \mathbb{R}을

fi(w)f_i(w) = (ii번 정점에서 이동 ww를 이용하여 1번 정점으로 갈 때 걸리는 분 단위 시간의 기댓값)

으로 정의하자. 이때 R\mathbb{R}은 실수 전체의 집합이다.

현서는 fi(w)≤Tf_i(w) \le T인 w∈Wiw \in W_i가 존재하는 정점만을 고려하려고 한다. 현서를 위해 위 조건을 만족하는 자취방을 모두 구해주자.

입력

첫째 줄에 정점의 개수 NN과 간선의 개수 MM이 주어진다. (1≤N,M≤2000001 \le N, M \le 200000)

둘째 줄부터 MM개의 줄에 걸쳐 각 간선이 잇는 두 정점의 번호 uiu_i, viv_i와 정수 aia_i, bib_i가 공백으로 구분되어 주어진다. (1≤ui,vi≤N1 \le u_i, v_i \le N; ui≠viu_i \ne v_i; −109≤ai,bi≤109-10^9 \le a_i, b_i \le 10^9) 같은 정점 쌍을 두 번 잇는 입력은 주어지지 않는다. 즉, 모든 1≤i,j≤M1 \le i, j \le M에 대해 {ui,vi}={uj,vj}\{u_i, v_i\} = \{u_j, v_j\}이면 i=ji = j이다.

(M+2M+2)째 줄에 정수 TT가 주어진다. (−2×1015≤T≤2×1015-2 \times 10^{15} \le T \le 2 \times 10^{15})

출력

첫째 줄에 조건을 만족하는 자취방의 개수 KK를 출력한다. 조건을 만족하는 자취방이 없으면 0을 출력한다.

첫째 줄에 0이 아닌 값을 출력했다면, 둘째 줄에 조건을 만족하는 자취방이 위치한 정점의 번호를 공백으로 구분하여 오름차순으로 출력한다.

힌트

첫 번째 예제에서, 2번 정점의 경우 2 → 3 → 1 순으로 이동하면 기댓값이 4분이 된다. 3번 정점의 경우 3 → 1 순으로 이동하면 기댓값이 2.5분이 된다. 세 번째 예제에서 주어지듯이, 학교에서 도달할 수 없는 자취방이 함께 주어지는 것도 가능하다.

예제4

  1. 예제 1

    입력
    4 5
    1 2 7 5
    1 3 1 4
    2 3 1 2
    2 4 6 2
    3 4 2 3
    4
    
    예상 출력
    2
    2 3
    
  2. 예제 2

    입력
    4 4
    1 2 2 4
    2 3 3 5
    1 3 -3 1
    3 4 5 7
    -3
    
    예상 출력
    3
    2 3 4
    
  3. 예제 3

    입력
    6 5
    1 2 8 -4
    1 3 2 3
    2 3 0 4
    3 4 -1 1
    5 6 -1 -1
    2
    
    예상 출력
    1
    2
    
  4. 예제 4

    입력
    3 3
    1 2 9 10
    1 3 -3 27
    2 3 -11 11
    5
    
    예상 출력
    0